收和发不能同时进行
通过多线程来解决
import socketimport threadingdef recv_msg(udp_socket):"""接收数据并显示"""# 接收数据while True:recv_data = udp_socket.recvfrom(1024)print(recv_data)def send_msg(udp_socket, dest_ip, dest_port):"""发送数据"""# 发送数据while True:send_data = input("输入要发送的数据:")udp_socket.sendto(send_data.encode("utf-8"), (dest_ip, dest_port))def main():"""完成udp聊天器的整体控制"""# 1. 创建套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 2. 绑定本地信息udp_socket.bind(("", 7890))# 3. 获取对方的ipdest_ip = input("请输入对方的ip:")dest_port = int(input("请输入对方的port:"))# 4. 创建2个线程,去执行相应的功能t_recv = threading.Thread(target=recv_msg, args=(udp_socket,))t_send = threading.Thread(target=send_msg, args=(udp_socket, dest_ip, dest_port))t_recv.start()t_send.start()if __name__ == "__main__":main()
多任务的一个简单案例
如果觉得《案例:多任务udp聊天器》对你有帮助,请点赞、收藏,并留下你的观点哦!