多任务版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()
作者:Ambitious
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!