Я хочу реализовать параллельный сервер. Сервер должен одновременно использовать более одного клиента. Чтобы клиент мог отправлять сообщения на сервер.Параллельный сервер в Python
Серийный сервер работает потрясающе. Я могу подключиться, написать, закрыть и снова подключиться, без проблем. Теперь я хочу реализовать потоки. Так что: для каждого нового клиента должен быть новый поток, который обрабатывает TCP-сокет с одним клиентом.
Мой код для последовательного сервера:
#!/usr/bin/python # This is server.py file
import socket # Import socket module
import time
while True:
s = socket.socket() # Create a socket object
host = socket.gethostname() # Get local machine name
port = 12345 # Reserve a port for your service.
s.bind((host, port)) # Bind to the port
s.listen(5) # Now wait for client connection.
c, addr = s.accept() # Establish connection with client.
print 'Got connection from', addr
c.send('Please wait...')
time.sleep(2)
c.send('Thank you for connecting with your admin. Please write now.')
while True:
msg = c.recv(1024)
if not msg:
s.close()
break
elif msg == "close1234567890":
print ("Connection with %s was closed by the client." % (addr[0]))
else:
print "%s: %s" % (addr[0], msg)
Мой TRY для параллельного сервера:
import socket
import time
import thread
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname()
s.bind((host, 50999))
s.listen(5)
def session(conn, addr):
while True:
print 'Got connection from', addr
conn.send('Please wait...')
time.sleep(2)
conn.send('Thank you for connecting with your admin. Please write now.')
while True:
msg = conn.recv(1024)
if not msg:
s.close()
break
elif msg == "close1234567890":
print ("Connection with %s was closed by the client." % (addr[0]))
else:
print "%s: %s" % (addr[0], msg)
while True:
conn, addr = s.accept()
try:
thread.start_new_thread(session(conn, addr))
finally:
s.close()
Ошибка: Я запустить сервер, не вероят. Затем я запускаю Клиент, и все нормально. Я могу писать, а сообщения распечатываются сервером. Затем я запускаю второй клиент, но в этих окнах ничего не происходит. Нет возможности писать со второго клиента.
Sry, я абсолютно начинающие нитки;)
Sry, но он не работает для моего кода клиента. Возможно, это ошибка в клиенте. Я не думал, что мне тоже нужно обновить этот код. Но может быть ... – fuuman
Он должен работать. Я не копировал и не вставлял весь ваш код. – laike9m