为什么recv接受mort比预期的字节数?

时间:2018-04-02 17:36:07

标签: python python-3.x sockets

当我调用recv来接收正好7个字节时,我会收到多于预期的字节数?

我不知道bufsize参数是如何工作的。

for i in range(data2[1]):
    try:
        tuple = envois.recv(7)
        time.sleep(0.1)
    except Exception as e:
        print(e)
    if (tuple[-2:] != myport):
        tuples.append(tuple)

print("tuples : {x}".format(x = tuples))
last_msg = envois.recv(3)
envois.close()
return (last_msg,tuples)

1 个答案:

答案 0 :(得分:0)

假设<span>{{data[col.field] | date: 'short':getFormattedTimeZone()}}</span> 是套接字,您收到的金额不会超过您指定的金额。来自docs

  

envois

     

从套接字接收数据。返回值是表示接收数据的字节对象。一次接收的最大数据量由 bufsize 指定。

您应该能够socket.recv(bufsize[, flags])

但是,不要将变量命名为assert len(tuple) <= 7。你会隐藏内置的。