1#!/usr/bin/env python 2from __future__ import absolute_import, division, print_function 3import sys 4from socket import * 5from time import strftime 6import datetime 7 8 9def main(): 10 if len(sys.argv) < 4: 11 print("completion_logger_server.py <listen address> <listen port> <log file>") 12 exit(1) 13 14 host = sys.argv[1] 15 port = int(sys.argv[2]) 16 buf = 1024 * 8 17 addr = (host, port) 18 19 # Create socket and bind to address 20 UDPSock = socket(AF_INET, SOCK_DGRAM) 21 UDPSock.bind(addr) 22 23 print("Listing on {0}:{1} and logging to '{2}'".format(host, port, sys.argv[3])) 24 25 # Open the logging file. 26 f = open(sys.argv[3], "a") 27 28 # Receive messages 29 while 1: 30 data, addr = UDPSock.recvfrom(buf) 31 if not data: 32 break 33 else: 34 f.write("{ ") 35 f.write( 36 '"time": "{0}"'.format( 37 datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") 38 ) 39 ) 40 f.write(', "sender": "{0}" '.format(addr[0])) 41 f.write(', "data": ') 42 f.write(data) 43 f.write(" }\n") 44 f.flush() 45 46 # Close socket 47 UDPSock.close() 48 49 50if __name__ == "__main__": 51 main() 52