Arm*_*ndo 14 c c++ sockets network-programming
我是套接字编程的新手(正如你已经通过我的愚蠢问题弄清楚的那样),但是把我的耻辱放在一边,我正在使用TCP posix编写一个程序.我的约束如下:从客户端发送到服务器的消息应该作为字节流读取,而我的应用程序性能不高时,应该尽快传递消息.我编写了一个TCP客户端类,目的是执行以下操作:1个连接 - 多个发送 - 并且在流式传输结束时关闭1个.问题是消息不能近乎实时地传递(我假设它等待更大的包以获得更好的吞吐量)在网上进行一些研究之后,我发现你可以禁用Nagle算法(NA) ),这样做是一个非常糟糕的主意.由于我是套接字编程的新手,我不想禁用我不完全理解的功能.所以我留下两个(坏?)选项:
没有留下插座还有其他解决方案吗?
谢谢.
Nem*_*emo 12
在您的情况下,禁用Nagle正是您想要做的.
请记住,每次调用write()都会立即传输您的数据.因此,请确保将整个消息打包在一起,然后在准备发送时调用write()(或writev()); 不要用小有效负载重复调用write(),因为这样会很慢.
像你这样的情况正是他们让你禁用Nagle的原因.
| 归档时间: | 
 | 
| 查看次数: | 423 次 | 
| 最近记录: |