# Server program # UDP VERSION import socket class Server: # Set the socket parameters #host = "localhost" host = '192.168.1.255' port = 5500 buf = 1024 addr = (host,port) def __init__(self): self.createObjects() def createObjects(self): # Create socket and bind to address self.sock_s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.sock_s.bind(self.addr) def listen(self): # Receive messages print "Server initialized ..." print while 1: data_rx, addr_rx = self.sock_s.recvfrom(self.buf) if not data_rx: print "Client has exited!" break print "\nSERVER:" print "Received message '", data_rx,"'" print "Sendinf ack ..." self.sock_s.sendto('ack', addr_rx) # Close socket self.sock_s.close() def start(self): self.listen() class Client: # Set the socket parameters #host = '0.0.0.0' host = '192.168.1.255' #port = 5140 port = 5500 #port = 7000 buf = 1024 multicast_addr = (host,port) def __init__(self): self.createObjects() def createObjects(self): # Create socket #self.socket_c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.socket_c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,0) self.socket_c.settimeout(0.2) # self.socket_c.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 20) self.socket_c.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) def sendData(self): def_msg = "===Enter message to send to server==="; print "\n", def_msg print # Send messages while (1): print "\nCLIENT" data = raw_input('>> ') if not data or data == 'q': break if(self.socket_c.sendto(data, self.multicast_addr)): print "Sending message '",data,"'....." data_rx, server_rx = self.socket_c.recvfrom(16) print "Data received ", data_rx, server_rx # Close socket self.socket_c.close() def start(self): self.sendData() import threading class MiThread(threading.Thread): def __init__(self, obj): threading.Thread.__init__(self) self.obj = obj def run(self): self.obj.start() if __name__ == '__main__': serverObj = Server() clientObj = Client() ts = MiThread(serverObj) tc = MiThread(clientObj) ts.start() tc.start() tc.join() ts.join(60)