Advertisement
Guest User

python aiuto

a guest
Apr 9th, 2013
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.43 KB | None | 0 0
  1. import string, time, socket, select, threading, signal, os, email, re
  2.  
  3.  
  4. MAXRECVLEN = 1024  # dimensione del buffer per ricezione da rete """
  5. LHOST = "192.168.1.53"  # IP locale su cui lavorare
  6. TXTTL = 4  # TTL in trasmissione
  7.  
  8. running = 1
  9. lastid = 0
  10.  
  11. d1['ID']        = "1"  # ID decoder
  12. d1['RXMCAST']   = "239.192.0.1"  # RX multicast
  13. d1['RXPORT']    = 1062  # RX UDP port
  14.  
  15. d2['ID']        = "2"  # ID decoder
  16. d2['RXMCAST']   = "239.192.0.2"   # RX multicast
  17. d2['RXPORT']    = 1062  # RX UDP port
  18.  
  19.  
  20. """ classe ricevente """
  21. class receiver(threading.Thread):
  22.    def __init__ (self, ldecoder):
  23.       threading.Thread.__init__(self)
  24.  
  25.       self.decoder = ldecoder
  26.       self.msg = ''
  27.    
  28.       # receiver
  29.       self.sr = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
  30.       """ allow multiple sockets to use the same addr and port number """
  31.       self.sr.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  32.       if hasattr(socket, "SO_REUSEPORT"):
  33.          self.sr.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
  34.  
  35.  
  36.  
  37.    def run(self):
  38.       global lastid
  39.       writelog('II: Starting decoder n.' + str(self.decoder['ID']) + ' - ' + str(self.decoder['RXMCAST']) + ':' + str(self.decoder['RXPORT']))
  40.  
  41.       """ Bind to the port that we know will receive multicast data """
  42.       self.sr.bind(('', self.decoder['RXPORT']))
  43.       self.sr.setblocking(1)
  44.  
  45.       """ tell the kernel that we want to add ourselves to a multicast group """
  46.       self.sr.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, socket.inet_aton(self.decoder['RXMCAST']) + socket.inet_aton(LHOST))
  47.  
  48.  
  49.  
  50.       while running:
  51.          self.chunk, self.addr = self.sr.recvfrom(MAXRECVLEN)
  52.  
  53.          if self.chunk == '':
  54.             writelog('EE: error reading from socket')
  55.             raise IOError
  56.  
  57.          self.msg += self.chunk
  58.          if len(self.msg) == PKTSIZE:
  59.  
  60.  
  61.             """            
  62.            if  
  63.            BLA BLA BLA BLA
  64.            """
  65.    
  66.             self.msg = ''
  67.  
  68.  
  69.    def close(self):
  70.       self.sr.close()
  71.  
  72.  
  73.  
  74.  
  75. def main():
  76.    global running
  77.  
  78.    while 1:
  79.       running = 1
  80.  
  81.       """ load decoders """
  82.       if len(d2['RXMCAST']) > 5 and d2['RXPORT'] > 1024:
  83.         recv2 = receiver(d2)
  84.         recv2.daemon = True
  85.         recv2.start()
  86.  
  87.       recv1 = receiver(d1)
  88.       recv1.run()
  89.      
  90.       """
  91.      except BLABLABLA
  92.      """
  93.  
  94. if __name__ == '__main__':
  95.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement