Задача: многопоточный tcp socket сервер на питоне
Почитал документацию, посмотрел форум, в основном советуют использовать готовую библиотеку twisted, но под питон 3.2 я ее не нашел.
Набросал заготовку. Кто чего может сказать по нему?
import socket
import threading
class ClientThread(threading.Thread):
def __init__ (self, p_channel, p_client_sock):
self.channel = p_channel
self.sock_client = p_client_sock
threading.Thread.__init__(self)
def run(self):
print('worked')
class AcceptThread(threading.Thread):
def __init__ (self, p_sock):
self.sock = p_sock
threading.Thread.__init__(self)
def run (self):
while True:
channel, client_sock = self.sock.accept()
print('Connect to', client_sock)
ClientThread(channel, client_sock).start()
class Server():
"""TCP Socket server"""
def __init__ (self, p_host, p_port, p_max_connection):
self.host = p_host
self.port = p_port
self.max_connection = p_max_connection
self.server = None
self.clients = {}
def Run(self):
self.server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
self.server.bind((self.host,int(self.port)))
self.server.listen(int(self.max_connection))
print('Listening at',self.server.getsockname())
AcceptThread(self.server).start()