受信バッファのサイズなどソケットの動作を決める様々な特性は「ソケットオプション」の値を変更することで調整できる
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");