Files
ctf/server.py
Jan Groß f765a0b6f9 Imported challenge checks and helper classes
Added .gitignore file
Added python server example as used in the "Basically Gambling" challenge
Imported automatic chellange checks and ansicolor helper class
2018-07-08 19:13:41 -04:00

39 lines
1.2 KiB
Python

import threading
import SocketServer
class ThreadedTCPRequestHandler(SocketServer.BaseRequestHandler):
def handle(self):
data = self.request.recv(1024)
cur_thread = threading.current_thread()
print "Received: {}".format(data)
response = "{}".format(cur_thread.name)
self.request.sendall(response)
class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
pass
if __name__ == "__main__":
HOST, PORT = "localhost", 6667
server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
ip, port = server.server_address
# Start a thread with the server -- that thread will then start one
# more thread for each request
server_thread = threading.Thread(target=server.serve_forever)
# Exit the server thread when the main thread terminates
server_thread.daemon = True
server_thread.start()
print "Server loop running in thread:", server_thread.name
#server.shutdown()
#server.server_close()
while ( True ):
try:
server.get_request()
except KeyboardInterrupt:
print "Server Stopping"
server.shutdown()
server.server_close()
break