TcpSocket 禁止Nagle算法
2022/2/24 14:22:01
本文主要是介绍TcpSocket 禁止Nagle算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概 述
我们在建立使用Tcp Socket时,会遇到当发送数据较小时,响应超时,或者对端发送频率越慢,相应越慢;发送频率越快,相应越快的情况。这可能时Nagle算法对socket的影响。
Nagle算法
Nagle算法在未确认数据发送时会将数据放到缓存中。直到得到明显的数据确认或者直到攒到了一定数量的数据后再发包。该算法是自适应的,即确认到达的越快,数据也就发送的越快;在希望减少微小分组数目的低速广域网上,会发送更少的分组。
具体有关此算法的原理和实现,这里不再赘述。大家可百度学习。
关闭 Nagle算法
Linux C++
使用setsockopt()
,函数返回-1
表示失败,反正成功
#include <netinet/tcp.h> //TCP_NODELAY socket_fd = socket(AF_INET, SOCK_STREAM, 0); //建立的socket套接字 int on = 1; int result = setsockopt(socket_fd, IPPROTO_TCP, TCP_NODELAY, (char *)&on, sizeof(int)); if (result == -1) { cout << "Close Nagle error" << endl; }
Qt
使用setSocketOption()
//m_socket 为 QTcpSocket m_socket->setSocketOption(QAbstractSocket::LowDelayOption, 1);
这篇关于TcpSocket 禁止Nagle算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享