#! /usr/bin/python2
""" Multiple connections
with multiple inheritance """
__author__ = "brock"

import SocketServer

PORT = 40373

linecount = 0

class EchoRequestHandler(SocketServer.BaseRequestHandler):
    """ client handler class """
    def handle(self):
        """ client handler """
        global linecount
        clientsock = self.request
        print 'Connected to {0}'.format(clientsock.getpeername())
        clientin = clientsock.makefile('r')
        clientout = clientsock.makefile('w')
        try:
            data = clientin.readline()
            while data:
                if data[-1:] == '\n':
                    data = data[:-1]
                linecount = linecount + 1
                clientout.write("{1}: {0}\r\n".format(data, linecount))
                clientout.flush()
                data = clientin.readline()
        except EOFError:
            pass
        clientin.close()
        clientout.close()
        self.request.close()

class EchoServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
    """ Threading echo server """
    pass

def main():
    """ main routine """
    try:
        echoserverobj = EchoServer(('', PORT), EchoRequestHandler)
        echoserverobj.serve_forever()
    except (EOFError, KeyboardInterrupt):
        pass

if __name__ == "__main__":
    main()
