# SVN changeset patch # User murco # Date 2012-10-25 20:58:41.758671 # Revision 25 Se aƱadio los ejemplos del udp en multicast Index: trunk/absroot/source/abspy/test/ethernet/__init__.py =================================================================== diff --git a/trunk/absroot/source/abspy/test/ethernet/__init__.py b/trunk/absroot/source/abspy/test/ethernet/__init__.py new file mode 10644 --- /dev/null (revision 0) +++ b/trunk/absroot/source/abspy/test/ethernet/__init__.py (revision 25) Index: trunk/absroot/source/abspy/test/ethernet/testUDPClient.py =================================================================== diff --git a/trunk/absroot/source/abspy/test/ethernet/testUDPClient.py b/trunk/absroot/source/abspy/test/ethernet/testUDPClient.py new file mode 10644 --- /dev/null (revision 0) +++ b/trunk/absroot/source/abspy/test/ethernet/testUDPClient.py (revision 25) @@ -0,0 +1,4 @@ +from udp import * + +clientObj = Client() +clientObj.start() \ No newline at end of file Index: trunk/absroot/source/abspy/test/ethernet/testUDPServer.py =================================================================== diff --git a/trunk/absroot/source/abspy/test/ethernet/testUDPServer.py b/trunk/absroot/source/abspy/test/ethernet/testUDPServer.py new file mode 10644 --- /dev/null (revision 0) +++ b/trunk/absroot/source/abspy/test/ethernet/testUDPServer.py (revision 25) @@ -0,0 +1,4 @@ +from udp import * + +serverObj = Server() +serverObj.start() \ No newline at end of file Index: trunk/absroot/source/abspy/test/ethernet/udp.py =================================================================== diff --git a/trunk/absroot/source/abspy/test/ethernet/udp.py b/trunk/absroot/source/abspy/test/ethernet/udp.py new file mode 10644 --- /dev/null (revision 0) +++ b/trunk/absroot/source/abspy/test/ethernet/udp.py (revision 25) @@ -0,0 +1,124 @@ +# Server program +# UDP VERSION + + +import socket + +class Server: + + # Set the socket parameters + host = "localhost" + port = 5140 + 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' + port = 5140 + 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.settimeout(0.2) + self.socket_c.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 20) + + 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) + + + \ No newline at end of file