有没有办法强制窗口在套接字调用上产生短读/写?

NoS*_*tAl 0 c c++ sockets winapi winsockets

这是出于调试目的.
为了测试代码的短发送/短接收处理部分是否正常工作......
有没有办法强制Windows生成短发送/ rcvs,即使是从/向socket读取/写入的少量字节?
我更喜欢每个进程执行此操作,但如果每个进程都无法完成此操作,我就可以测试Firefox/Outlook代码如何处理这个问题了.:)

我知道我可以手动添加巨大的消息来强迫这个,但我正在处理具有多层内容的巨大旧代码库,所以即使添加一个充满随机字节的简单巨大的消息也是非常重要的.:)

nou*_*ney 5

您可以更改使用的内部缓冲区的大小recv(),并send()通过setsockopt()与标志SO_RCVBUFrecv()缓冲区,并与标志SO_SNDBUFsend()一个.

你可以在这里找到一个例子.

编辑:您可能想要禁用Nagle的算法.在这种情况下,看看标记的anwser.

EDIT2:alk在评论中说,重要的是在调用accept()或之前更改缓冲区大小connect().