import socket
from threading import Thread
import sys
import time
from datetime import datetime

class processrequest(Thread):
	sock = None
	def __init__(self):
		Thread.__init__(self)

	def set_socket(self, sock):
		self.sock = sock

	def run(self):
		data = self.sock.recv(5)
		print "got ", data
		time.sleep(10)
		self.sock.sendall(str(datetime.now()))
		self.sock.close()



#IMPORTANT THERE NEEDS TO BE A PAUSE WHILE THE AGENT GETS UP AND RUNNING
try:
	serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	serversocket.bind(("0.0.0.0", 3000))
except Exception, e:
	serversocket.close()
serversocket.listen(5)

while 1:
	try:
		(clientsocket, address) = serversocket.accept()
	except Exception, e:
		print "Exception ", e, clientsocket
	try:	
		p = processrequest()
		p.set_socket(clientsocket)
		p.start()
	except Exception, e:
		print "exception ", e
		clientsocket.close()
		serversocket.close()
		break

