4

タイトルはわかりやすいようです。アプリでのデータの送受信速度を上げたいのですが、tcp_nodelayをtrueに設定するように言われました。しかし、GCDAsyncSocketでそれを行う方法がわかりません。誰か助けてもらえますか?

4

1 に答える 1

3

私はGCDAsyncSocketsocketFDを使用していませんが、「GCDAsyncSocket.h」は、呼び出しでのみ呼び出す必要があるメソッドを使用して、基になるソケット記述子を取得できることを示しています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 に答える