使用python3怎么實(shí)現(xiàn)一個(gè)多線程聊天室?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開(kāi)發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!Python主要應(yīng)用于:1、Web開(kāi)發(fā);2、數(shù)據(jù)科學(xué)研究;3、網(wǎng)絡(luò)爬蟲;4、嵌入式應(yīng)用開(kāi)發(fā);5、游戲開(kāi)發(fā);6、桌面應(yīng)用開(kāi)發(fā)。
具體內(nèi)容如下
import threading import socket #socket udpSocket = None #計(jì)數(shù)器 num = 1 #1.創(chuàng)建接受,發(fā)送方法 def inMessage(): global num while True: #等待接收消息 data = udpSocket.recvfrom(1024) #4. 將接收到的數(shù)據(jù)再發(fā)送給對(duì)方 udpSocket.sendto(data[0], data[1]) #打印獲得的消息 print("\r>> 消息%d => 來(lái)自:%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) #啟動(dòng)線程 t1.start() t2.start() #主線程堵塞 t1.join() t2.join() #3.主方法運(yùn)行 if __name__ == "__main__": main()
效果圖:
看完上述內(nèi)容,你們掌握使用python3怎么實(shí)現(xiàn)一個(gè)多線程聊天室的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。