UDPserver.py
 1 import socket
 2 #导入套接字模块
 3 
 4 s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
 5 # - socket.AF_INET:IPV4
 6 # - socket.STREAM:TCP
 7 # - socket.DGRAM:UDP
 8 
 9 s.bind(('',25555))
10 #绑定套接字有效地址和端口
11 #''空位任何地址 本地的127.0.0.1 和局域网还有自己真实的ip
12 print('[+] Server Open.....')
13 
14 while True:
15     try:
16         data,c_addr = s.recvfrom(1024)
17         #一次性接受1024bytes的数据 ,返回一个元组,其中有数据和地址
18         #UDP不需要构成连接,直接发送即可
19         print('from:',c_addr)
20         #c_addr是一个地址,发送消息的客户端的IP和端口的二元组
21         print('say:%s'%(data.decode('utf-8')))
22         msg = data.decode('utf-8')
23         s.sendto(msg.encode('utf-8'),c_addr)
24         #发送信息,其中有两个参数,一个是信息,一个是目标地址和端口
25     except KeyboardInterrupt:
26         break
27 
28 print('[+] Server Close......')
29 s.closeUDPclient.py
 1 import socket
 2 #导入套接字模块
 3 
 4 c = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
 5 # - socket.AF_INET:IPV4
 6 # - socket.STREAM:TCP
 7 # - socket.DGRAM:UDP
 8 
 9 while True:
10     try:
11         msg = input('>>>')
12         if msg == 0:
13             #判断输入是否为空 就是直接回车了
14             continue
15         #UDP不需要构成连接,直接发送即可
16         c.sendto(msg.encode('utf-8'),('127.0.0.1',25555))
17         #发送消息,其中两个参数,第一个是要发送的信息
18         #第二个是发送的ip地址和端口,是一个元组
19 
20         data,s_addr = c.recvfrom(1024)
21 
22         #c_addr是一个地址,发送消息的客户端的IP和端口的二元组
23         print('$: %s'%(data.decode('utf-8')))
24     except KeyboardInterrupt:
25         break
26 
27 c.close()