Select Git revision
UDP-reflector.py
UDP-reflector.py 1.49 KiB
import socket
import time
#import sys
#DEFINE INPUTS HERE
REFLECTOR_HOST = '::1' # IP ADDRESS FOR LISTENING (v4 or v6)
REFLECTOR_PORT = 15005 # IP PORT TO LISTEN TO
REMOTE_PORT = 55555 # REMOTE PORT TO REFLECT PACKETS TO
REFLECT_SWITCH = 1 # REFLECTION ENABLED:1 (TWO-WAY DELAY),
# REFLECTION DISABLED:0 (ONE-WAY DELAY)
BUFFER = 4096
ADDR = (REFLECTOR_HOST, REFLECTOR_PORT)
#DUMB CHECK OF IP ADDRESS VERSION
if ':' in REFLECTOR_HOST:
EchoServer = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
else:
EchoServer = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#BINDING, PROCESSING AND WRITING TO CSV
try:
EchoServer.bind(ADDR)
print 'echo server started on port', ADDR
except Exception:
print '***ERROR: Port Binding Failed'
while True:
data, addr = EchoServer.recvfrom(BUFFER)
addlst = addr[0], REMOTE_PORT
if REFLECT_SWITCH == 1:
EchoServer.sendto('%s' % (data), addlst)
splitdata = data.split(',')
timecount = splitdata[0].strip("('")
one_way_delay = (time.time() - float(timecount))
packet_number = str(splitdata[1].strip("' '"))
packet_number = packet_number.lstrip('0')
outfile = open("udp_oneway_results.csv", "a")\
.write(str(time.ctime() +
',' + 'received , ' + packet_number +
' , ' + str(one_way_delay) + '\n'))
print (time.ctime() + ',' + 'received , ' +
packet_number + ' , ' + str(one_way_delay))
outfile.close()
EchoServer.close()