UDP Communication
See also SoapOverUdp, TcpCommunication
Sending
Here's simple code to post a note by UDP in Python:
Toggle line numbers
1 import socket 2 3 UDP_IP = "127.0.0.1" 4 UDP_PORT = 5005 5 MESSAGE = "Hello, World!" 6 7 print "UDP target IP:", UDP_IP 8 print "UDP target port:", UDP_PORT 9 print "message:", MESSAGE 10 11 sock = socket.socket(socket.AF_INET, # Internet 12 socket.SOCK_DGRAM) # UDP 13 sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
Receiving
Here's simple code to receive UDP messages in Python:
Toggle line numbers
1 import socket 2 3 UDP_IP = "127.0.0.1" 4 UDP_PORT = 5005 5 6 sock = socket.socket(socket.AF_INET, # Internet 7 socket.SOCK_DGRAM) # UDP 8 sock.bind((UDP_IP, UDP_PORT)) 9 10 while True: 11 data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes 12 print "received message:", data
Using UDP for e.g. File Transfers
If considering extending this example for e.g. file transfers, keep in mind that UDP is not reliable. So you'll have to handle packets getting lost and packets arriving out of order. In effect, to get something reliable you'll need to implement something similar to TCP on top of UDP, and you might want to consider using TCP instead.
That being said, sometimes you need to use UDP, e.g. for UDP hole punching. In that case, consider TFTP for python or UDT for python
本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6420218.html,如需转载请自行联系原作者