Python3多线程UDP聊天室实现指南
本文介绍如何使用Python3结合threading与socket模块构建一个基于UDP协议的多线程聊天室。通过分离接收与发送线程,实现实时消息交互,代码包含端口绑定、线程启动及阻塞等待等关键步骤,适合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()
程序运行效果展示如下:


以上内容为本文的全部分享,希望能为读者的学习带来帮助,同时也欢迎继续支持本站获取更多技术资源。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













