python3實現(xiàn)多線程聊天室
更新時間:2021年07月06日 10:37:36 作者:LGX_TvT
這篇文章主要為大家詳細(xì)介紹了python3實現(xiàn)多線程聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
使用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語法學(xué)習(xí)之線程的創(chuàng)建與常用方法詳解
本文主要介紹了線程的使用,線程是利用進程的資源來執(zhí)行業(yè)務(wù),并且通過創(chuàng)建多個線程,對于資源的消耗相對來說會比較低,今天就來看一看線程的使用方法具體有哪些吧2022-04-04
在PyCharm中實現(xiàn)關(guān)閉一個死循環(huán)程序的方法
今天小編就為大家分享一篇在PyCharm中實現(xiàn)關(guān)閉一個死循環(huán)程序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
mac 安裝python網(wǎng)絡(luò)請求包requests方法
今天小編就為大家分享一篇mac 安裝python網(wǎng)絡(luò)請求包requests方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06

