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