Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import thread
- import pickle
- class BMultcast(object):
- def __init__(self, addres, bind=('localhost', 8089)):
- sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
- sock.bind(bind)
- self.process = addres
- self.socket = sock
- self.bind = bind
- def multcast(self, group, message):
- for i, p in enumerate(self.process):
- if i in group:
- self.socket.sendto(message, p)
- def deliver(self):
- data, addr = self.socket.recvfrom(1024)
- return data
- class RMultcast(BMultcast):
- def __init__(self):
- self.received = []
- thread.start_new_thread(self._keep_read)
- def _keep_read(self):
- while True:
- data = super(BMultcast, self).deliver():
- bind, group, message = pickle.loads(data)
- if m not in self.received:
- self.received.append(message)
- if bind != self.bind:
- super(RMultcast, self).multcast(group, message)
- deli
- def deliver(self):
- data, addr = self.socket.recvfrom(1024)
- return data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement