@@ -0,0 +1,55 | |||||
|
1 | """ | |||
|
2 | This script should run in the absmodule. | |||
|
3 | """ | |||
|
4 | import socket | |||
|
5 | import struct | |||
|
6 | import sys | |||
|
7 | ||||
|
8 | multicast_group = '224.3.29.71' | |||
|
9 | server_address = ('',10000) | |||
|
10 | ||||
|
11 | mod = ('192.168.1.63', 5500) #This IP should be modificated according to its absmodule | |||
|
12 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |||
|
13 | s.connect(mod) | |||
|
14 | ||||
|
15 | # Create the socket | |||
|
16 | sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |||
|
17 | ||||
|
18 | # Bind to the server address | |||
|
19 | sock.bind(server_address) | |||
|
20 | ||||
|
21 | #Tell the operating system to add the socket to the multicast group | |||
|
22 | #on all interfaces. | |||
|
23 | group = socket.inet_aton(multicast_group) | |||
|
24 | mreq = struct.pack('4sL', group, socket.INADDR_ANY) | |||
|
25 | sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) | |||
|
26 | #Receive/respond loop | |||
|
27 | ||||
|
28 | while True: | |||
|
29 | ||||
|
30 | print >>sys.stderr, '\nwaiting to receive message' | |||
|
31 | data, address = sock.recvfrom(1024) | |||
|
32 | if data != '': | |||
|
33 | message = data | |||
|
34 | #try: | |||
|
35 | s.sendto(message,mod) | |||
|
36 | rx_text = s.recv(1024) | |||
|
37 | s.close() | |||
|
38 | s = None | |||
|
39 | print >>sys.stderr, 'Respond from TCP server: %s' % rx_text | |||
|
40 | try: | |||
|
41 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |||
|
42 | s.connect(mod) | |||
|
43 | except: | |||
|
44 | print '\nProblem with creating socket repeater!!...\n' | |||
|
45 | s.close() | |||
|
46 | s = None | |||
|
47 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |||
|
48 | s.connect(mod) | |||
|
49 | break | |||
|
50 | ||||
|
51 | print >>sys.stderr, 'received %s bytes from %s' % (len(data), address) | |||
|
52 | print >>sys.stderr, data | |||
|
53 | ||||
|
54 | #print >>sys.stderr, 'sending acknowledgement to', address | |||
|
55 | #sock.sendto('ack', address)break |
@@ -0,0 +1,19 | |||||
|
1 | """ | |||
|
2 | This script should run in SIR. It creates a multicast server. | |||
|
3 | This server connects SIR client to a absmodule socket. SIR client socket sends SIR data to multicast server. This server sends the data to a | |||
|
4 | absmodule socket repeater that re-sends the configuration to Tcp Control Module (C server running in absmodule). | |||
|
5 | """ | |||
|
6 | ||||
|
7 | import socket | |||
|
8 | import struct | |||
|
9 | import sys | |||
|
10 | ||||
|
11 | #-------Socket Server---------- | |||
|
12 | sock_server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) | |||
|
13 | sock_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) | |||
|
14 | sock_server.bind(('',4242)) | |||
|
15 | mreq = struct.pack("=4sl", socket.inet_aton("224.3.29.71"),socket.INADDR_ANY) | |||
|
16 | sock_server.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) | |||
|
17 | ||||
|
18 | while True: | |||
|
19 | print sock_server.recv(1024) |
General Comments 0
You need to be logged in to leave comments.
Login now