似乎标题是自我描述的。我想提高在我的应用程序中发送和接收数据的速度,我被告知将 tcp_nodelay 设置为 true。但我不知道如何使用 GCDAsyncSocket 做到这一点。谁能帮我?
问问题
2221 次
1 回答
3
我没有使用过 GCDAsyncSocket,但是“GCDAsyncSocket.h”表明您可以使用该方法获取底层套接字描述符,该socketFD
方法必须仅在调用中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>
到你的源文件来编译它。正如我所说,我还没有尝试过,但也许它有助于为您指明正确的方向。
于 2012-08-17T17:56:47.597 回答