#! /usr/bin/python2
""" Many clients and some connection-like behavior """
__author__ = "brock"

import socket

PORT = 40373

def main():
    """ main routine """
    try:
        clientmap = dict()
        linecount = 0
        udpsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        ## Do not do the next line....
        udpsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        udpsock.bind(('', PORT))
        print 'Running on port {0}'.format(PORT)
        while 1:
            clientdata, clientaddr = udpsock.recvfrom(4096)
            if clientaddr not in clientmap:
                clientmap[clientaddr] = 0
            clientcount = clientmap[clientaddr] + 1
            clientmap[clientaddr] = clientcount
            print 'Packet from {0}'.format(clientaddr)
            linecount = linecount + 1
            udpsock.sendto(
                "{1},{2}: {0}".format(clientdata, linecount, clientcount),
                clientaddr)
    except (EOFError, KeyboardInterrupt):
        pass

if __name__ == "__main__":
    main()
