#!/usr/bin/python from sys import argv, exit from socket import * bufsize = 65*1024 if len(argv) != 6: print "syntax: udp_relay.py port host1 port1 host2 port2" exit(1) port, host1, port1, host2, port2 = argv[1:] port = int(port) ; port1 = int(port1) ; port2 = int(port2) addr1 = (host1, port1) ; addr2 = (host2, port2) sock = socket(AF_INET, SOCK_DGRAM) sock.bind(("", port)) while 1: buf, from_addr = sock.recvfrom(bufsize) from_host, from_port = from_addr if from_host == host1: to_addr = addr2 else: to_addr = addr1 sock.sendto(buf, 0, to_addr) print "relayed packet from:", from_addr, "to:", to_addr