udp_demo(傻瓜来回发送)

代码讲解

 1 import socket
 2 
 3 
 4 # 发送数据
 5 def send_data(udp_socket, dest_ip, dest_port):
 6     send_msg = input('请输入要发送的数据: ')
 7     udp_socket.sendto(send_msg.encode('gbk'), (dest_ip, dest_port))  # encode(字符编码)
 8     return send_msg
 9 
10 
11 # 接收数据
12 def recv_data(udp_socket):
13     recv_msg, recv_ip_port = udp_socket.recvfrom(1024)  # recvfrom(一次可接收数据的大小)
14     print(str(recv_ip_port) + ':' + recv_msg.decode('gbk'))
15     return recv_msg.decode('gbk')
16 
17 
18 def main():
19     # 创建udp套接字
20     udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # 创建udp套接字
21     # 绑定自身ip和port
22     load_addr = ('', 8000)
23     udp_socket.bind(load_addr)
24     # 对方ip和port
25     dest_ip = input('请输入对方ip: ')  
26     dest_port = int(input('请输入对方port: '))
27     while True:
28         # 发送数据
29         exit1 = send_data(udp_socket, dest_ip, dest_port)
30         if exit1 == 'exit':
31             break
32         # 接收数据
33         exit2 = recv_data(udp_socket)
34         if exit2 == 'exit':
35             break
36     # 关闭udp套接字
37     udp_socket.close()
38 
39 
40 if __name__ == '__main__':
41     main()
42  

 

猜你喜欢

转载自www.cnblogs.com/GEEK-ZHAO/p/12233839.html