Here's simple code to post a note by UDP in Python:
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) )
Here's simple code to receive UDP messages in Python:
* It would seem easy to extend this to a simple means to open a file on the sender side, send datagrams to the receiver side, and write those packets to a file there - I just wonder about synchronisation issues regarding the buffer...Anyone smart care to put something down, say as a simple practical extension of what is already here? (And if you do it pls delete this message) *
I've been googling for some time now, and still have yet to find a working example of Python multicast listening.
Here's my own, non-functioning, effort:
1 import socket 2 import struct 3 4 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) 5 #sock.bind(('127.0.0.1', 1000)) 6 sock.bind(('', 1000)) 7 grpaddr = 0 8 for byte in "220.127.116.11".split("."): 9 grpaddr = (grpaddr << 8) | int(byte) 10 mreq = struct.pack('ll', socket.htonl(grpaddr), 11 socket.htonl(socket.INADDR_ANY)) 12 sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) 13 print sock.recvfrom(100)
The mreq packing is based on [http://www.senux.com/linux/network/multicast/ some code that I found,] that does not work. On my computer, at least.
Sending to multicast groups is just fine; Here's some functional text:
At this point, I'm beginning to think: "Python multicast simply does not work."
It's too bad we don't have anything as simple as this:
...or something like that.