You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
877 B
29 lines
877 B
11 months ago
|
import threading
|
||
|
import socketserver
|
||
|
|
||
|
class ThreadedTCPRequestHandler(socketserver.StreamRequestHandler):
|
||
|
|
||
|
def handle(self):
|
||
|
data = self.rfile.readline().strip().decode('ascii')
|
||
|
cur_thread = threading.currentThread()
|
||
|
print (threading.current_thread().name)
|
||
|
response = bytes("{}: {}".format(cur_thread.name, data), 'ascii')
|
||
|
self.request.sendall(response)
|
||
|
|
||
|
class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
|
||
|
pass
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
HOST, PORT = "", 2000
|
||
|
server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
|
||
|
|
||
|
# activamos el servidor (ponemos a la escucha)
|
||
|
# podomos porvocar una excepción con Ctrl-C
|
||
|
try:
|
||
|
server_thread = threading.Thread(target=server.serve_forever)
|
||
|
server_thread.start()
|
||
|
while True:
|
||
|
pass
|
||
|
except KeyboardInterrupt:
|
||
|
print ("servidor finalizado")
|
||
|
|