我在 Windows Mobile 6.0 上遇到问题。 我想创建一个没有的 TCP 连接 使用 Nagle 算法,所以它会在我调用时发送我的数据 “发送”功能,并且不缓冲调用,有太多 数据量小。
我尝试了以下方法:
bool b = 真; setsockopt(socketfd, IPPROTO_TCP, TCP_NODELAY, (char*)(&b), sizeof(BOOL));
它在桌面上运行良好。但是在 Windows Mobile 上,如果我 设置这个值,然后我查询它,返回 值为8。网络流量分析表明, 什么都没有改变。
有什么方法可以强制刷新我的套接字吗?
最佳答案
在我看来,Windows 移动版不支持 TCP_NODELAY 选项。查看 MSDN 文档,它可能会产生某种影响,但我记得有一段时间在设置一些套接字选项(包括 TCP_NODELAY 和设置发送和接收缓冲区)时苦苦挣扎,并且 setsockopt 调用会失败。检查 setsockopt 是否返回 false,如果没有,获取::WSAGetLastError() 并查看它是否会引导您到任何地方。就我而言,我记得没有这些选项是因为它们不受支持。我在 Windows Mobile 5 上工作。
关于c++ - Windows Mobile 上的 setsockopt TCP_NODELAY 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/495658/