##// END OF EJS Templates
Initial import.
Initial import.

File last commit:

r25:26
r50:51
Show More
udp.py
132 lines | 3.0 KiB | text/x-python | PythonLexer
# 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'
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)
#if self.socket_c == -1:
# print "No se pudo establecer conexion con el socket"
#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)