多任务版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()
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/245725.html