如何在GCDAsyncsocket中设置tcp_nodelay?

时间:2012-08-17 14:00:27

标签: objective-c ios tcp gcdasyncsocket

似乎标题是自我描述性的。我想提高在我的应用程序中发送和接收数据的速度,我被告知将tcp_nodelay设置为true。但我不知道如何用GCDAsyncSocket做到这一点。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

我没有使用 GCDAsyncSocket ,但是“GCDAsyncSocket.h”表明您可以使用socketFD方法获取底层套接字描述符,该方法必须仅在{{{}}中调用1}}打电话。因此,以下代码可能有效:

performBlock:

您可能需要添加

[asyncSocket performBlock:^{
    int fd = [asyncSocket socketFD];
    int on = 1;
    if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char*)&on, sizeof(on)) == -1) {
        /* handle error */
    }
}];

到你的源文件来编译它。正如我所说,我没有试过这个,但也许有助于指出你正确的方向。