brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · ff33331 Raw
52 lines · python
1#!/usr/bin/env python2from __future__ import absolute_import, division, print_function3import sys4from socket import *5from time import strftime6import datetime7 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 * 817    addr = (host, port)18 19    # Create socket and bind to address20    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 messages29    while 1:30        data, addr = UDPSock.recvfrom(buf)31        if not data:32            break33        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 socket47    UDPSock.close()48 49 50if __name__ == "__main__":51    main()52