socket 选项 TCP_NODELAY 和 NAGLE 算法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了socket 选项 TCP_NODELAY 和 NAGLE 算法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含766字,纯文字阅读大概需要2分钟。
内容图文
![socket 选项 TCP_NODELAY 和 NAGLE 算法](/upload/InfoBanner/zyjiaocheng/1208/54167c7f31554b818651b4f58249529f.jpg)
当我们通过 TCP socket 分多次发送较少的数据时,比如小于 1460 或者 100 以内,对端可能会很长时间收不到数据,导致本端应用程序认为超时报错。这时可能是受到了 TCP NAGLE 算法的影响。
关于 TCP NAGLE 算法,可以参考这篇文章《TCP NAGLE算法和实现》以及《网络编程中Nagle算法和Delayed ACK的测试》 ,这里只说程序上如何实现。代码如下:
int on = 1; /* make socket here */ #ifdef WIN32 setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (const char *)&on, sizeof(on)); setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (const char *)&on, sizeof(on)); #else setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (void *)&on, sizeof(on)); setsockopt( sock, IPPROTO_TCP, TCP_NODELAY, (void *)&on, sizeof(on)); #endif
在 Linux 或者 Android 上需要包含 <netinet/tcp.h> 。
经过上面的设置后,发送小数据可能会快一些。
原文:http://blog.csdn.net/foruok/article/details/22414255
内容总结
以上是互联网集市为您收集整理的socket 选项 TCP_NODELAY 和 NAGLE 算法全部内容,希望文章能够帮你解决socket 选项 TCP_NODELAY 和 NAGLE 算法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。