Python 'Asynchat' Chat Server - заставить клиента ждать, пока сервер не будет
Вопрос
Я создал простой сервер чата с помощью модуля Asynchat в Python.Мое намерение состоит в том, чтобы заставить клиентов чата ждать, пока не работает сервер.
Я попытался сделать это, используя ручку_connect_event, настройки подключения к true thinge, как:
def handle_connect_event(self):
self.connected = True
.
Тогда я включаю в команду CONNECT, пока не станет подключенным:
while not self.connected:
try:
self.connect((host, port))
except:
time.sleep(1)
.
Я прочитал в коде диспетчера Asyncore, что, когда соединение успешно, Ship_Connect_Event называется:
def connect(self, address):
self.connected = False
err = self.socket.connect_ex(address)
# XXX Should interpret Winsock return values
if err in (EINPROGRESS, EALREADY, EWOULDBLOCK):
return
if err in (0, EISCONN):
self.addr = address
self.handle_connect_event()
else:
raise socket.error(err, errorcode[err])
.
Поэтому я верю, когда соединение создано код в Handle_connect_event, должен быть срабатывает, тем самым настройка подключена к True, тем самым нарушая мою петлю.Однако это не происходит.
Никто знает почему?И, если этот метод не прав, как мы зарабатываем клиентами чата ждать сервера?
Я новичок в этих вещах, поэтому, пожалуйста, объясните, что я помню, я новичок :)
Решение
Я думаю, моя машина была ума была на некоторое время, но мой код работает :) Я могу запустить 2 клиентских машинах, а затем запустить сервер и получить задачи.
Лучшее чувство когда-либо!:)