我正在使用套接字库(SOCK_STREAM)在 Python 中开发小型服务器。服务器应该接收很多小消息(25-40字节),处理它们并尽可能快地转发。
在 Linux 和 OSX 上它工作得很好,socket 的 recv 函数一到就返回数据。不幸的是,在 Windows (8 Pro) 上,它似乎在从 recv 函数返回数据之前累积数据。
我试图限制使用 recv 函数读取的最大数据量,但这并没有太大帮助。看起来数据是在内部累积的。
我必须在服务器(Python)或客户端(Java 的套接字)中设置任何特定的套接字选项吗?
编辑
我的一位同事建议通过填充虚拟数据将每条消息四舍五入到 1KB。这可能有助于避免@PeterLawrey 指出的内部缓冲区。
我没有机会尝试。你认为它可能有帮助吗?它是有效且广泛采用的技术吗?