1. 程式人生 > 其它 >多工版udp聊天器

多工版udp聊天器

多工版udp聊天器

 1 import socket
 2 import threading
 3 
 4 
 5 def recv_msg(udp_socket):
 6     # 3.接收資料
 7     while True:
 8         recv_data = udp_socket.recvfrom(1024)
 9         resv_ip = recv_data[1]
10         recv_msg = recv_data[0].decode('gbk')
11         print('來自{}傳送的資料\n{}'.format(resv_ip, recv_msg))
12 13 14 def send_msg(udp_socket, dest_ip, dest_port): 15 # 4.傳送資料 16 while True: 17 send_data = input('輸入需要傳送的資料:') 18 udp_socket.sendto(send_data.encode('gbk'), (dest_ip, dest_port)) 19 20 21 def main(): 22 '''完成udp聊天器的整體控制''' 23 # 1.繫結套接字 24 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
25 # 2.繫結本地資訊 26 udp_socket.bind(("", 7890)) 27 # 獲取物件的ip 28 dest_ip = input('請輸入對方的ip:') 29 dest_port = int(input('請輸入對方的port:')) 30 31 # 建立執行緒 32 t_recv = threading.Thread(target=recv_msg, args=(udp_socket,)) 33 t_send = threading.Thread(target=send_msg, args=(udp_socket, dest_ip, dest_port))
34 35 t_recv.start() 36 t_send.start() 37 38 39 if __name__ == '__main__': 40 main()