##// END OF EJS Templates
imanay -
r52:53
parent child
Show More
@@ -0,0 +1,14
1 import socket
2
3 s = socket.socket()
4 s.connect(("localhost", 5500))
5
6 while True:
7 mensaje = raw_input("> ")
8 s.send(mensaje)
9 if mensaje == "quit":
10 break
11
12 print "adios"
13
14 s.close() No newline at end of file
@@ -0,0 +1,19
1 import socket
2
3 s = socket.socket()
4 s.bind(("localhost", 5500))
5 s.listen(1)
6
7 sc, addr = s.accept()
8
9 while True:
10 recibido = sc.recv(1024)
11 if recibido == "quit":
12 break
13 print "Recibido:", recibido
14 sc.send(recibido)
15
16 print "adios"
17
18 sc.close()
19 s.close() No newline at end of file
@@ -1,134 +1,132
1 # Server program
1 # Server program
2 # UDP VERSION
2 # UDP VERSION
3
3
4
4
5 import socket
5 import socket
6
6
7 class Server:
7 class Server:
8
8
9 # Set the socket parameters
9 # Set the socket parameters
10 #host = "localhost"
10 #host = "localhost"
11 host = '192.168.1.255'
11 host = '192.168.1.255'
12 port = 5500
12 port = 5500
13 buf = 1024
13 buf = 1024
14 addr = (host,port)
14 addr = (host,port)
15
15
16 def __init__(self):
16 def __init__(self):
17
17
18 self.createObjects()
18 self.createObjects()
19
19
20 def createObjects(self):
20 def createObjects(self):
21
21
22 # Create socket and bind to address
22 # Create socket and bind to address
23 self.sock_s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
23 self.sock_s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
24 self.sock_s.bind(self.addr)
24 self.sock_s.bind(self.addr)
25
25
26 def listen(self):
26 def listen(self):
27
27
28 # Receive messages
28 # Receive messages
29 print "Server initialized ..."
29 print "Server initialized ..."
30 print
30 print
31 while 1:
31 while 1:
32 data_rx, addr_rx = self.sock_s.recvfrom(self.buf)
32 data_rx, addr_rx = self.sock_s.recvfrom(self.buf)
33 if not data_rx:
33 if not data_rx:
34 print "Client has exited!"
34 print "Client has exited!"
35 break
35 break
36
36
37 print "\nSERVER:"
37 print "\nSERVER:"
38 print "Received message '", data_rx,"'"
38 print "Received message '", data_rx,"'"
39 print "Sendinf ack ..."
39 print "Sendinf ack ..."
40 self.sock_s.sendto('ack', addr_rx)
40 self.sock_s.sendto('ack', addr_rx)
41
41
42 # Close socket
42 # Close socket
43 self.sock_s.close()
43 self.sock_s.close()
44
44
45 def start(self):
45 def start(self):
46
46
47 self.listen()
47 self.listen()
48
48
49 class Client:
49 class Client:
50
50
51
51
52 # Set the socket parameters
52 # Set the socket parameters
53 #host = '0.0.0.0'
53 #host = '0.0.0.0'
54 host = '192.168.1.255'
54 host = '192.168.1.255'
55 #port = 5140
55 #port = 5140
56 port = 5500
56 port = 5500
57 #port = 7000
57 #port = 7000
58 buf = 1024
58 buf = 1024
59 multicast_addr = (host,port)
59 multicast_addr = (host,port)
60
60
61 def __init__(self):
61 def __init__(self):
62
62
63 self.createObjects()
63 self.createObjects()
64
64
65 def createObjects(self):
65 def createObjects(self):
66
66
67 # Create socket
67 # Create socket
68 #self.socket_c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
68 #self.socket_c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
69 self.socket_c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,0)
69 self.socket_c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,0)
70 #self.socket_c.settimeout(0.2)
70 self.socket_c.settimeout(0.2)
71 #if self.socket_c == -1:
72 # print "No se pudo establecer conexion con el socket"
73
71
74 #self.socket_c.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 20)
72 # self.socket_c.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 20)
75 self.socket_c.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
73 self.socket_c.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
76
74
77
75
78 def sendData(self):
76 def sendData(self):
79
77
80 def_msg = "===Enter message to send to server===";
78 def_msg = "===Enter message to send to server===";
81 print "\n", def_msg
79 print "\n", def_msg
82 print
80 print
83
81
84 # Send messages
82 # Send messages
85 while (1):
83 while (1):
86 print "\nCLIENT"
84 print "\nCLIENT"
87 data = raw_input('>> ')
85 data = raw_input('>> ')
88 if not data or data == 'q':
86 if not data or data == 'q':
89 break
87 break
90
88
91 if(self.socket_c.sendto(data, self.multicast_addr)):
89 if(self.socket_c.sendto(data, self.multicast_addr)):
92
90
93 print "Sending message '",data,"'....."
91 print "Sending message '",data,"'....."
94
92
95 data_rx, server_rx = self.socket_c.recvfrom(16)
93 data_rx, server_rx = self.socket_c.recvfrom(16)
96
94
97 print "Data received ", data_rx, server_rx
95 print "Data received ", data_rx, server_rx
98
96
99 # Close socket
97 # Close socket
100 self.socket_c.close()
98 self.socket_c.close()
101
99
102 def start(self):
100 def start(self):
103
101
104 self.sendData()
102 self.sendData()
105
103
106 import threading
104 import threading
107
105
108 class MiThread(threading.Thread):
106 class MiThread(threading.Thread):
109 def __init__(self, obj):
107 def __init__(self, obj):
110
108
111 threading.Thread.__init__(self)
109 threading.Thread.__init__(self)
112 self.obj = obj
110 self.obj = obj
113
111
114 def run(self):
112 def run(self):
115
113
116 self.obj.start()
114 self.obj.start()
117
115
118
116
119 if __name__ == '__main__':
117 if __name__ == '__main__':
120
118
121 serverObj = Server()
119 serverObj = Server()
122 clientObj = Client()
120 clientObj = Client()
123
121
124 ts = MiThread(serverObj)
122 ts = MiThread(serverObj)
125 tc = MiThread(clientObj)
123 tc = MiThread(clientObj)
126
124
127 ts.start()
125 ts.start()
128 tc.start()
126 tc.start()
129
127
130 tc.join()
128 tc.join()
131 ts.join(60)
129 ts.join(60)
132
130
133
131
134 No newline at end of file
132
General Comments 0
You need to be logged in to leave comments. Login now