如何在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> 

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