]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Better way of deducing mcast group bytes.
authorGuido van Rossum <guido@python.org>
Thu, 24 Sep 1992 10:33:40 +0000 (10:33 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 24 Sep 1992 10:33:40 +0000 (10:33 +0000)
Demo/sockets/mcast.py

index 5f16ed9479c3612d5c733cb85e27280c5eaf528a..a6bee7cd8e734bfb00b397234864bb040d73d9ee 100755 (executable)
@@ -6,14 +6,15 @@
 #   mcast    (receivers)
 
 MYPORT = 8123
-MYGROUP_BYTES = 225, 0, 0, 250
+MYGROUP = '225.0.0.250'
 
 import sys
 import time
 import struct
+import regsub
 from socket import *
 from SOCKET import *
-from IN import *
+from IN import *                       # Local module, SGI specific!!!
 
 sender = sys.argv[1:]
 
@@ -24,10 +25,7 @@ if sender:
                s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
                mygroup = '<broadcast>'
        else:
-               # Ugly: construct decimal IP address string from MYGROUP_BYTES
-               mygroup = ''
-               for byte in MYGROUP_BYTES: mygroup = mygroup + '.' + `byte`
-               mygroup = mygroup[1:]
+               mygroup = MYGROUP
                ttl = struct.pack('b', 1)               # Time-to-live
                s.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, ttl)
        while 1:
@@ -42,9 +40,10 @@ else:
        # Allow multiple copies of this program on one machine
        s.setsockopt(SOL_SOCKET, SO_REUSEPORT, 1) # (Not strictly needed)
 
-       # Ugly: construct binary group address from MYGROUP_BYTES
+       # Ugly: construct binary group address from MYGROUP converted to bytes
+       bytes = eval(regsub.gsub('\.', ',', MYGROUP))
        grpaddr = 0
-       for byte in MYGROUP_BYTES: grpaddr = (grpaddr << 8) | byte
+       for byte in bytes: grpaddr = (grpaddr << 8) | byte
 
        # Construct struct mreq from grpaddr and ifaddr
        ifaddr = INADDR_ANY