1 # -*- coding: utf-8 -*- 2 #2019-11-24 3 #服务器端 4 5 import socket 6 7 def Recv(): 8 udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) 9 10 # ip地址和端口号,ip一般不用写,表示本机的任何一个ip 11 local_addr=('',7788) 12 udp_socket.bind(local_addr) 13 while True: 14 print("OK!\n") 15 #等待接收方发送的数据 16 recv_data=udp_socket.recvfrom(1024) #1024表示本次接收的最大字节数 17 recv_msg=recv_data[0] 18 recv_addr=recv_data[1] 19 #显示收到的数据 20 if recv_msg.decode("gbk")=="exit": 21 print("通信结束!") 22 return 23 print("%s: %s\n"%(str(recv_addr),recv_msg.decode("gbk"))) 24 print(type(recv_addr)) 25 #关闭套接字 26 udp_socket.close() 27 28 if __name__=='__main__': 29 Recv()
1 # -*- coding: utf-8 -*- 2 #发送端 3 import socket 4 5 def send(): 6 #创建一个套接字 7 udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) 8 9 #准备接收方的地址 10 ihdu="10.66.73.201" 11 local_addr=('',9999) 12 dest_tuple=(ihdu,7788) 13 udp_socket.bind(local_addr) 14 while True: 15 #从键盘获取数据 16 send_data=input("请输入您要发送的内容: ") 17 #发送数据到指定电脑的指定程序中 18 udp_socket.sendto(send_data.encode("utf-8"),dest_tuple) 19 if send_data=='exit': 20 print("通信结束!") 21 return 22 #关闭套接字 23 udp_socket.close() 24 25 26 if __name__ == "__main__": 27 send()