connection.recv无法读取缓冲区

时间:2018-09-23 18:15:17

标签: python sockets server client recv

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)"行未提供任何输出。似乎正在等待将某些内容写入缓冲区(无限循环)。所以,我的问题:

  1. 即使客户端已将其请求写入缓冲区,为什么conn.rev(10)仍在等待?
  2. 与异步有关吗?客户端应该在服务器开始等待之前发送其请求吗?

关于如何解决此问题的任何想法?

编辑:这是客户端代码

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)

0 个答案:

没有答案