标题似乎是自我描述的。我想提高我的应用程序中发送和接收数据的速度,并被告知将tcp_nodelay设置为true。但是我不知道如何使用GCDAsyncSocket做到这一点。谁能帮我?

最佳答案

我没有使用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>

到您的源文件进行编译。正如我所说,我还没有尝试过,但是也许可以帮助您指出正确的方向。

07-28 08:38