import thread, time from socket import * myhost = '' myport = 45678 sockobj = socket(AF_INET, SOCK_STREAM) sockobj.bind((myhost, myport)) sockobj.listen(5) def now(): return time.ctime(time.time()) def handleClient(connection): firstport = myport + 1 sockobj = socket(AF_INET, SOCK_STREAM) while 1: try: sockobj.bind((myhost, firstport)) except: firstport += 1 else: break sockobj.listen(5) connection.send(str(firstport)) while 1: data = connection.recv(1024) if not data: break if data == "close_exit": sockobj.close() print "test socket closed" break connection.close() def dispatcher(): while 1: try: connection, address = sockobj.accept() except: print "interrupted exiting" sockobj.close() break print 'Server accepted connection from', address print 'at', now() thread.start_new(handleClient, (connection,)) dispatcher()