python3实现多线程聊天室
作者:LGX_TvT 发布时间:2021-09-11 07:35:47
标签:python,聊天室
使用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()
效果图:
来源:https://blog.csdn.net/l1336037686/article/details/78735412


猜你喜欢
- OpenCV的作用及安装OpenCV简介OpenCV是一个开源的跨平台计算机视觉库,可以运行在Linux、Windows、Android和M
- 大概在2004年初的时候,我第一次买了一本很厚的书,名字或许叫《Dreamweaver MX从入门到精通》,很认真看着书并实践操作大约三分之
- 生成全局ID的方法很多, 这里记录下一种简单的方案: 利用mysql的自增id生成全局唯一ID.1. 创建一张只需要两个字段的表:CREAT
- 作为主题的制作者, 除了实现功能, 展示界面, 还有责任使主题灵活多变, 以满足更多人不同的需求.可能一些朋友曾为选用双栏主题 (单侧边栏)
- 延续上一篇的话题继续,顺便放上一篇的传送门:点这里。集群的必要性consul本身就是管理集群的,现在还需要给consul搞个集群,这是为啥?
- 有时候让了解放双手,让电脑来帮我们自动发一些我们想要发的消息,挺省力的,比如说白天写好了演讲稿,晚上要在群里进行文字演讲,那么我们就可以用脚
- 权限全局配置:REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES':
- 用dicompyler软件打开dicom图像,头文件如图所示:当然也可以直接读取:ds = dicom.read_file('H:\
- (注:在看到大家如此关注JS里头的这几个对象,我试着把原文再修改一下,力求能再详细的阐明个中意义 2007-05-21)在提到上述的概念之前
- 和我之前写的通过导入jdbc驱动jar包来连接mysql数据库而言,用mybatis来说可以有很多好处呀,首先mybatis,就是对jdbc
- 本文实例讲述了django框架模板中定义变量的方法。分享给大家供大家参考,具体如下:总有一些情况,你会想在django template中设
- 导语各位戏精大家好!我是木木子,这个中秋已经结束了,你们都带着对象回家了码?中秋那几天朋友圈简直是大型秀恩爱现场。又是一年中秋夜,依旧凭实力
- 上期回顾:亚马逊购物用户体验分析 (一)“查找内部”功能书是在亚马逊最常被购买的产品之一,所以毋庸置疑亚马逊的开发小组已经建立了一个关于“查
- 本文为大家分享了SQL Server数据库附加失败的具体解决方法,供大家参考,具体内容如下1、错误3415问题:附加数据库的时候,发现总是附
- 本文实例讲述了Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法。分享给大家供大家参考,具体
- 1-删除模型变量del model_define2-清空CUDA cachetorch.cuda.empty_cache()3-步骤2(异步
- 前言本方法基于web2py框架,使用web2py的完整网站数据包创建简单网站。web2py 是一个为Python语言提供的全功能Web应用框
- function annotation 写法:使用冒号 : 加类型代表参数类型默认值参数示例:b: int = 2使用&
- 代码如下: EXEC sp_rename '表名.[原列名]', '新列名', 'column
- 我们一般在Excel里面是使用数据连接属性里面写sql语句,或者vba里面利用ado组件执行sql语句。新版的Excel里面带上了Power