[TCP/IP] ソケットオプション

受信バッファのサイズなどソケットの動作を決める様々な特性は「ソケットオプション」の値を変更することで調整できる
getter, setterは以下の通り
int getsockopt(int socket, int level, int optName, void *optVal, unsigned int *optLen)
int setsockopt(int socket, int level, int optName, const void *optVal, unsigned int optLen)

ソケットの受信バッファサイズ(bytes)を取得し、それを2倍にする例

    int rcvBufferSize;
    int sockOptSize;

    /* デフォルトのバッファサイズを取得 */
    sockOptSize = sizeof(rcvBufferSize);
    if(getsockopt(sock, SOL_SOCKET, SO_RCVBUF, &rcvBufferSize, &sockOptSize) < 0)
        DieWithError("getsockopt() failed")
    printf("Initial Receive Buffer Size: %d\n", rcvBufferSize);

    /* デフォルトのバッファサイズを取得 */
    rcvBufferSize *= 2;
    if(setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &rcvBufferSize, sizeof(rcvBufferSize)) < 0)
        DieWithError("setsockopt() failed");