看起来标题已经很明确了。我想提高应用程序发送和接收数据的速度,有人告诉我将tcp_nodelay设置为true。但我不知道如何在GCDAsyncSocket中实现。有人可以帮助我吗?
看起来标题已经很明确了。我想提高应用程序发送和接收数据的速度,有人告诉我将tcp_nodelay设置为true。但我不知道如何在GCDAsyncSocket中实现。有人可以帮助我吗?
我没有使用过 GCDAsyncSocket,但是 "GCDAsyncSocket.h" 显示你可以使用 socketFD
方法获取底层的 socket 描述符,必须在 performBlock:
调用中调用。所以下面的代码可能有效:
[asyncSocket performBlock:^{
int fd = [asyncSocket socketFD];
int on = 1;
if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char*)&on, sizeof(on)) == -1) {
/* handle error */
}
}];
#include <netinet/tcp.h>
#include <netinet/in.h>
将此内容添加到您的源文件以进行编译。正如我所说,我没有尝试过这种方法,但或许它能够指引您朝着正确的方向前进。