Maison > Article > développement back-end > Analyse simple de la communication socket UDP en python (avec code)
Ce que cet article vous apporte est une simple analyse de la communication par socket UDP en python (avec code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. .
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 fait pas besoin d'établir une connexion, il peut être envoyé directement
Modèle de serveur :
data,c_addr = s.recvfrom(1024)
s.sendto(msg, c_addr )
Les messages envoyés par d'autres sont envoyés directement au socket du serveur s
data : les données envoyées
c_addr : qui l'a envoyé
s = socket .socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(('',25555))
envoyer une réception
envoyer à une réception
Ils sont tous bloqués
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!