python3實現(xiàn)多線程聊天室
更新時間:2021年07月06日 10:37:36 作者:LGX_TvT
這篇文章主要為大家詳細介紹了python3實現(xiàn)多線程聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
使用python3創(chuàng)建多線程聊天室,供大家參考,具體內(nèi)容如下
import threading
import socket
#socket
udpSocket = None
#計數(shù)器
num = 1
#1.創(chuàng)建接受,發(fā)送方法
def inMessage():
global num
while True:
#等待接收消息
data = udpSocket.recvfrom(1024)
#4. 將接收到的數(shù)據(jù)再發(fā)送給對方
udpSocket.sendto(data[0], data[1])
#打印獲得的消息
print("\r>> 消息%d => 來自:%s => %s"%(num,data[1],data[0].decode('gb2312')))
print('\r>>',end='')
#消息數(shù)量+1
num+=1
def outMessage():
while True:
#發(fā)送地址
sendAddr = ('192.168.106.132',8080)
#獲得輸入數(shù)據(jù)
senddata = input('\r>>')
#發(fā)送消息
udpSocket.sendto(senddata.encode('gb2312'),sendAddr)
#2.使用多線程執(zhí)行接收發(fā)送
def main():
global udpSocket
#創(chuàng)建socket
udpSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#綁定端口
udpSocket.bind(('',8686))
#創(chuàng)建線程
t1 = threading.Thread(target=inMessage)
t2 = threading.Thread(target=outMessage)
#啟動線程
t1.start()
t2.start()
#主線程堵塞
t1.join()
t2.join()
#3.主方法運行
if __name__ == "__main__":
main()
效果圖:


以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python提示No module named images的解決方法
這篇文章主要介紹了python提示No module named images的解決方法,是Python程序設(shè)計中經(jīng)常遇到的問題,本文給出了具有針對性的解決方法,需要的朋友可以參考下2014-09-09
關(guān)于Python中flask-httpauth庫用法詳解
這篇文章主要介紹了關(guān)于Python中flask-httpauth庫用法詳解,Flask-HTTPAuth是一個?Flask?擴展,它簡化了?HTTP?身份驗證與?Flask?路由的使用,需要的朋友可以參考下2023-04-04
利用Python3分析sitemap.xml并抓取導(dǎo)出全站鏈接詳解
因為最近更換了網(wǎng)址,所以需要在百度站長平臺提交網(wǎng)址,不管是主動推送還是手動提交,前提都是要整理網(wǎng)站的鏈接,手動添加太麻煩,于是就想寫個腳本直接抓取全站鏈接并導(dǎo)出,本文詳細介紹的是實現(xiàn)的方法及過程,需要的朋友們一起來看看吧。2017-07-07

