#!/usr/bin/env python import sys from socket import * from time import strftime import datetime def main(): if len(sys.argv) < 4: print "completion_logger_server.py <listen address> <listen port> <log file>" exit(1) host = sys.argv[1] port = int(sys.argv[2]) buf = 1024 * 8 addr = (host,port) # Create socket and bind to address UDPSock = socket(AF_INET,SOCK_DGRAM) UDPSock.bind(addr) print "Listing on {0}:{1} and logging to '{2}'".format(host, port, sys.argv[3]) # Open the logging file. f = open(sys.argv[3], "a") # Receive messages while 1: data,addr = UDPSock.recvfrom(buf) if not data: break else: f.write("{ "); f.write("\"time\": \"{0}\"".format(datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'))) f.write(", \"sender\": \"{0}\" ".format(addr[0])) f.write(", \"data\": ") f.write(data) f.write(" }\n") f.flush() # Close socket UDPSock.close() if __name__ == '__main__': main()