我正在使用socket(AF_UNIX, SOCK_STREAM)
套接字在两个进程之间进行通信。从套接字接收字节数的最佳方式是什么?
我希望接收器能够接收上限字节数,其中上限非常大(在16MB到64MB范围内)。也就是说,我希望收到最多[cap]字节的消息,如果消息大于此消息,我想停止接收或放弃其余消息。
从文档中,这样做的方式似乎是使用socket.recv(bufsize=[cap])
。但有以下注意事项:
注意对于使用的硬件和网络的现实最佳匹配,BUFSIZE的值应该是2的功率相对较小,例如,4096
这表明,缓冲区大小不是为此目的而设计的。那么,实现这个目标的最好方法是什么?
你不能只是收到字节,因为他们收到至少(至少4k)字节后,至少(4k)字节,调用recv()剩下什么? TBH,我完全不理解你的要求,或者'消息'是什么。 –