如何在GCDAsyncsocket中设置tcp_nodelay?
似乎标题是自描述性的。 我想增加在我的应用程序发送和接收数据的速度,我被告知设置tcp_nodelay为true。 但我不知道如何用GCDAsyncSocket做到这一点。 谁能帮我?
我没有使用GCDAsyncSocket ,但是“GCDAsyncSocket.h”显示你可以用socketFD
方法获得底层的套接字描述符,只有在performBlock:
call中才能调用它。 所以下面的代码可能工作:
[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>
到你的源文件来编译这个。 正如我所说,我没有尝试过,但也许有助于指出你在正确的方向。