标签:字符编码 name class int 自身 return ret encode load
代码讲解
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
标签:字符编码 name class int 自身 return ret encode load
原文地址:https://www.cnblogs.com/GEEK-ZHAO/p/12233839.html