Home >Backend Development >Python Tutorial >Simple analysis of UDP socket communication in python (with code)
This article brings you a simple analysis of UDP socket communication in python (with code). It has certain reference value. Friends in need can refer to it. I hope It will help you.
UDPserver.py
import socket #导入套接字模块 s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # - socket.AF_INET:IPV4 # - socket.STREAM:TCP # - socket.DGRAM:UDP s.bind(('',25555)) #绑定套接字有效地址和端口 #''空位任何地址 本地的127.0.0.1 和局域网还有自己真实的ip print('[+] Server Open.....') while True: try: data,c_addr = s.recvfrom(1024) #一次性接受1024bytes的数据 ,返回一个元组,其中有数据和地址 #UDP不需要构成连接,直接发送即可 print('from:',c_addr) #c_addr是一个地址,发送消息的客户端的IP和端口的二元组 print('say:%s'%(data.decode('utf-8'))) msg = data.decode('utf-8') s.sendto(msg.encode('utf-8'),c_addr) #发送信息,其中有两个参数,一个是信息,一个是目标地址和端口 except KeyboardInterrupt: break print('[+] Server Close......') s.close
UDPclient.py
import socket #导入套接字模块 c = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # - socket.AF_INET:IPV4 # - socket.STREAM:TCP # - socket.DGRAM:UDP while True: try: msg = input('>>>') if msg == 0: #判断输入是否为空 就是直接回车了 continue #UDP不需要构成连接,直接发送即可 c.sendto(msg.encode('utf-8'),('127.0.0.1',25555)) #发送消息,其中两个参数,第一个是要发送的信息 #第二个是发送的ip地址和端口,是一个元组 data,s_addr = c.recvfrom(1024) #c_addr是一个地址,发送消息的客户端的IP和端口的二元组 print('$: %s'%(data.decode('utf-8'))) except KeyboardInterrupt: break c.close()
UDP does not need to be composed Connect and send directly
Server model:
data,c_addr = s.recvfrom(1024)
s.sendto(msg, c_addr)
Messages sent by others are sent directly to the s server socket
data: sent data
c_addr: who sent it
s = socket .socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(('',25555))
send recv
sendto recvfrom
They are all blocked
The above is the detailed content of Simple analysis of UDP socket communication in python (with code). For more information, please follow other related articles on the PHP Chinese website!