/usr/lib64/python2.6/Demo/sockets
NameSizeModeActions
broadcast.py2830644editdlrm
broadcast.pyc5460644editdlrm
broadcast.pyo5460644editdlrm
echosvr.py7420755editdlrm
echosvr.pyc8300644editdlrm
echosvr.pyo8300644editdlrm
finger.py12630755editdlrm
finger.pyc11740644editdlrm
finger.pyo11740644editdlrm
ftp.py39280644editdlrm
ftp.pyc29730644editdlrm
ftp.pyo29730644editdlrm
gopher.py97870755editdlrm
gopher.pyc104270644editdlrm
gopher.pyo104270644editdlrm
mcast.py23870644editdlrm
mcast.pyc20940644editdlrm
mcast.pyo20940644editdlrm
radio.py2870644editdlrm
radio.pyc4700644editdlrm
radio.pyo4700644editdlrm
README8140644editdlrm
rpython.py7170755editdlrm
rpython.pyc9870644editdlrm
rpython.pyo9870644editdlrm
rpythond.py12170755editdlrm
rpythond.pyc13370644editdlrm
rpythond.pyo13370644editdlrm
telnet.py30130755editdlrm
telnet.pyc21820644editdlrm
telnet.pyo21820644editdlrm
throughput.py20880755editdlrm
throughput.pyc24890644editdlrm
throughput.pyo24890644editdlrm
udpecho.py14710755editdlrm
udpecho.pyc20390644editdlrm
udpecho.pyo20390644editdlrm
unicast.py2300644editdlrm
unicast.pyc4550644editdlrm
unicast.pyo4550644editdlrm
unixclient.py2320644editdlrm
unixclient.pyc4240644editdlrm
unixclient.pyo4240644editdlrm
unixserver.py4140644editdlrm
unixserver.pyc5990644editdlrm
unixserver.pyo5990644editdlrm
Edit: /usr/lib64/python2.6/Demo/sockets/mcast.py (2387B)
# Send/receive UDP multicast packets. # Requires that your OS kernel supports IP multicast. # This is built-in on SGI, still optional for most other vendors. # # Usage: # mcast -s (sender) # mcast -b (sender, using broadcast instead multicast) # mcast (receivers) MYPORT = 8123 MYGROUP = '225.0.0.250' import sys import time import struct from socket import * # Main program def main(): flags = sys.argv[1:] # if flags: sender(flags[0]) else: receiver() # Sender subroutine (only one per local area network) def sender(flag): s = socket(AF_INET, SOCK_DGRAM) if flag == '-b': s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) mygroup = '' else: mygroup = MYGROUP ttl = struct.pack('b', 1) # Time-to-live s.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, ttl) while 1: data = repr(time.time()) ## data = data + (1400 - len(data)) * '\0' s.sendto(data, (mygroup, MYPORT)) time.sleep(1) # Receiver subroutine (as many as you like) def receiver(): # Open and initialize the socket s = openmcastsock(MYGROUP, MYPORT) # # Loop, printing any data we receive while 1: data, sender = s.recvfrom(1500) while data[-1:] == '\0': data = data[:-1] # Strip trailing \0's print sender, ':', repr(data) # Open a UDP socket, bind it to a port and select a multicast group def openmcastsock(group, port): # Import modules used only here import string import struct # # Create a socket s = socket(AF_INET, SOCK_DGRAM) # # Allow multiple copies of this program on one machine # (not strictly needed) s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) # # Bind it to the port s.bind(('', port)) # # Look up multicast group address in name server # (doesn't hurt if it is already in ddd.ddd.ddd.ddd format) group = gethostbyname(group) # # Construct binary group address bytes = map(int, string.split(group, ".")) grpaddr = 0 for byte in bytes: grpaddr = (grpaddr << 8) | byte # # Construct struct mreq from grpaddr and ifaddr ifaddr = INADDR_ANY mreq = struct.pack('ll', htonl(grpaddr), htonl(ifaddr)) # # Add group membership s.setsockopt(IPPROTO_IP, IP_ADD_MEMBERSHIP, mreq) # return s main()