Page MenuHomec4science

joiner
No OneTemporary

File Metadata

Created
Wed, Sep 25, 00:58
#!/usr/bin/env python3
#
# Multiplexer joiner (sends the output from one NMEA server to another)
# ONE WAY ONLY, from HOST1 to HOST2
#
import socket, sys
###### main #####
if(len(sys.argv) < 4):
print("Usage : " + sys.argv[0] + " from_IP from_PORT to_IP to_PORT")
sys.exit()
FROM_HOST = sys.argv[1]
FROM_PORT = int(sys.argv[2])
TO_HOST = sys.argv[3]
TO_PORT = int(sys.argv[4])
RECV_BUFFER = 4096 # Advisable to keep it as an exponent of 2
# Connect to FROM
print("Connecting to server #1 (FROM) (" + FROM_HOST + ":" + str(FROM_PORT) + ")")
try:
sfrom = socket.socket()
sfrom.connect((FROM_HOST,FROM_PORT))
except:
print("Error while connecting to server #1 (FROM).")
sys.exit()
# Connect to TO
print("Connecting to server #2 (TO) (" + TO_HOST + ":" + str(TO_PORT) + ")")
try:
sto = socket.socket()
sto.connect((TO_HOST,TO_PORT))
except:
print("Error while connecting to server #2 (TO).")
sys.exit()
print("Joiner is now connected. Press Ctrl-C to quit.")
while 1:
try:
data = sfrom.recv(RECV_BUFFER)
if data:
sto.send(data)
except:
print
print("Disconnected.")
sfrom.close()
sto.close()
sys.exit()

Event Timeline