c++ - 有没有办法强制 Windows 在套接字调用上产生短读/写?

标签 c++ c sockets winapi winsockets

这是为了调试目的。
测试代码的短发送/短接收处理部分是否正常工作...
有没有办法强制 Windows 生成短发送/接收,即使是从套接字读取/写入少量字节?
我更喜欢按进程执行此操作,但如果不能按进程执行此操作,我准备测试 Firefox/Outlook 代码如何处理此问题。 :)

Ofc 我知道我可以手动添加巨大的消息来强制执行此操作,但我正在处理具有多层内容的庞大旧代码库,因此即使添加一个简单的充满随机字节的巨大消息也很重要。 :)

最佳答案

您可以使用 setsockopt() 更改 recv()send() 使用的内部缓冲区的大小recv() 缓冲区的标志 SO_RCVBUFsend() 缓冲区的标志 SO_SNDBUF

你可以找到一个例子here .

编辑:您可能想要禁用 Nagle 算法。在这种情况下,请查看标记 的答案。

EDIT2: 正如 alk 在评论中所说,在调用 accept()连接()

关于c++ - 有没有办法强制 Windows 在套接字调用上产生短读/写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18444367/

相关文章:

c++ - 成员(member)声明未找到?

c++ - 高维数据如何映射到特征类型?

c - 在 GCC 中切换 Intel 和 ATT 模式

c - 主机和客户端无法在我的聊天程序中使用 select() 进行通信

python-3.x - 如何使用Python告诉客户端服务器中不存在文件

c++ - 我如何将接受的套接字作为参数发送到函数

c++ - 添加到指针 vector 时出错

c++ - C++ 类构造函数语法的解释?

javascript - node.js 中的二进制结构

C - 直接使用地址访问内存?