python3实现多线程聊天室


Posted in Python onDecember 12, 2018

使用python3创建多线程聊天室,供大家参考,具体内容如下

import threading 
import socket
 
#socket
udpSocket = None
#计数器
num = 1
 
#1.创建接受,发送方法
def inMessage():
  global num
  while True:
    #等待接收消息
    data = udpSocket.recvfrom(1024)
    #4. 将接收到的数据再发送给对方
    udpSocket.sendto(data[0], data[1])
    #打印获得的消息
    print("\r>> 消息%d => 来自:%s => %s"%(num,data[1],data[0].decode('gb2312')))
    print('\r>>',end='')
    #消息数量+1
    num+=1
 
def outMessage():
  while True:
    #发送地址
    sendAddr = ('192.168.106.132',8080)
    #获得输入数据
    senddata = input('\r>>')
    #发送消息
    udpSocket.sendto(senddata.encode('gb2312'),sendAddr)
 
 
#2.使用多线程执行接收发送
def main():
  global udpSocket
  
  #创建socket
  udpSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
  #绑定端口
  udpSocket.bind(('',8686))
 
  #创建线程
  t1 = threading.Thread(target=inMessage)
  t2 = threading.Thread(target=outMessage)
 
  #启动线程
  t1.start()
  t2.start()
 
  #主线程堵塞
  t1.join()
  t2.join()
 
#3.主方法运行
if __name__ == "__main__":
  main()

效果图:

python3实现多线程聊天室

python3实现多线程聊天室

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python如何在终端里面显示一张图片
Aug 17 Python
Python实现简单的多任务mysql转xml的方法
Feb 08 Python
python学习教程之使用py2exe打包
Sep 24 Python
python监控进程脚本
Apr 12 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
python实现画循环圆
Nov 23 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
Django中的session用法详解
Mar 09 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
Apr 08 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
Apr 16 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
python 实现的截屏工具
May 08 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 #Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 #Python
python2.7实现邮件发送功能
Dec 12 #Python
对python csv模块配置分隔符和引用符详解
Dec 12 #Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 #Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 #Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 #Python
You might like
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
jQuery 位置插件
2008/12/25 Javascript
JavaScript 继承使用分析
2011/05/12 Javascript
JS在可编辑的div中的光标位置插入内容的方法
2014/11/20 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
Less 安装及基本用法
2018/05/05 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Python深入学习之对象的属性
2014/08/31 Python
python issubclass 和 isinstance函数
2019/07/25 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
python 实现矩阵按对角线打印
2019/11/29 Python
python如何查看安装了的模块
2020/06/23 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
社会实践先进工作者事迹材料
2014/05/06 职场文书
农村文化活动总结
2014/08/28 职场文书
小学副班长竞选稿
2015/11/21 职场文书
创业计划书之服装
2019/10/07 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
详解JVM系列之内存模型
2021/06/10 Javascript