python3實現多線程聊天室

這篇文章主要爲大家詳細介紹了python3實現多線程聊天室,具有一定的參考價值,感興趣的小夥伴們可以參考一下

使用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()

效果圖:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章