![]() |
1
5
socket.recv(N) 不保证会收到确切的n个字节:相反,n只是 最大限度 一口就能接收到的字节数(根据文档的建议,为了提高效率,最好是4096的小倍数)。 你需要“不断地接收”(循环和积累),直到你拥有你想要的所有字节(而且看起来你的协议没有传达出关键的价值:你 将 必须使其显式化,无论是在传输结束时使用前缀长度还是终止符,都无法从流套接字中隐式提取它)。 同样用于发送,尽管在这种情况下,您可以使用 socket.sendall 它代表你做了必要的循环。 |
![]() |
2
0
使用pickle模块将对象序列化到套接字上,并将其加载到另一侧。类似:
|