web-dev-qa-db-ja.com

SOL_SOCKETは何に使用されますか?

Linux manページに記載されているとおり

この定数をgetsockoptまたはsetsockoptのレベル引数として使用して、このセクションで説明するソケットレベルのオプションを操作します

しかし、この説明は得られません。 SOL_SOCKETの目的は何ですか?それは何をするためのものか?

21
Blake

SOL_SOCKETはソケット層そのものです。プロトコルに依存しないオプションに使用されます。

もっと読むことができます こちら

7
demo.b

ソケットオプションを取得または設定するときは、オプション名とレベルを指定します。 level = SOL_SOCKETの場合、アイテムはソケット自体で検索されます。

たとえば、ソケットオプションを設定してアドレスを1(on/true)に再利用する場合、「レベル」SOL_SOCKETと設定する値を渡します。

int value = 1;    
setsockopt(mysocket, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value));

これにより、ソケットのSO_REUSEADDRが1に設定されます。

私はこれに固執しました、ドキュメントは非常に不可解です。ここで少し詳細なドキュメント: http://pubs.opengroup.org/onlinepubs/7908799/xns/getsockopt.html

63
jspacek