Я новичок в программировании сокетов с потоками в python. У меня есть простое приложение сервера:Программирование сокетов Python с потоками
#!/usr/bin/python
from socket import *
from threading import Thread
import _thread
host = ''
port = 52000
sock = socket()
sock.bind((host, port))
sock.listen(5)
print "server is waiting for connections.."
def clientthread():
conn, addr = sock.accept()
print addr, "is connected"
conn.send('Hi! I am server\n') #send only takes string
#Receiving from client
data = conn.recv(1024)
print data
for num in range(5):
Thread(target = clientthread).start()
sock.close()
Этот простой код отлично работает на 5 клиентов, и после этого, когда один выходит из и новый один хочет, чтобы связаться с сервером, то приложение просто закрывается. Но я хочу иметь 5 одновременных подключений, и как только кто-то выйдет из системы, одно клиентское пространство воссоздается для размещения нового (то есть пятого в настоящее время). Я считаю, что модуль потоковой передачи может помочь мне здесь. Его функции, такие как acquire()
и release()
. Но не знаете, как это сделать? Пожалуйста помоги.