Найти - Пользователи
Полная версия: tcp socket server
Начало » Network » tcp socket server
1
Acvill
Всем привет.
Задача: многопоточный 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()
Может чего-то посоветуете.
o7412369815963
> Задача: многопоточный tcp socket сервер на питоне

Для учебных целей/поиграться или для продакшена?
Acvill
Для начала в качестве учебных целей.
Возможно использование в продакшене
Ed
http://docs.python.org/library/socketserver.html#socketserver-tcpserver-example и далее по тексту
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB