server.py
while True:
if buffer_len >= 100:
connection.sendall("something")
else:
buffer_read = connection.recv(10)
buffer_len = buffer_len + len(buffer_read)
На клиенте я отправил запрос (длина = 100) и получил ответ один раз.Но когда я отправил второй запрос, строка "buffer_read = connection.recv(10)"
не дала никакого вывода.Похоже, что он ожидает что-то, что будет записано в буфере (бесконечный цикл).Итак, мой вопрос:
- почему conn.rev (10) ожидает, даже если клиент записал свой запрос в буфер?
- Это связано с асинхронностью?клиент должен отправить свой запрос до того, как сервер начнет ждать?
Есть идеи, как решить эту проблему?
Редактировать: Вот код клиента
for tcp in Q
self.sock.sendall(tcp.payload)
buffer_len = 0
while response_len > buffer_len:
data = self.sock.recv(self.buff_size)
buffer_len += len(data)