When retrieving a socket option, or setting it, you specify the option name as well as the level. When level = SOL_SOCKET
, the item will be searched for in the socket itself.
For example, suppose we want to set the socket option to reuse the address to 1 (on/true), we pass in the "level" SOL_SOCKET
and the value we want it set to.
int value = 1;
setsockopt(mysocket, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value));
This will set the SO_REUSEADDR
in my socket to 1.
I was stuck on this myself, the documentation is extremely cryptic. Slightly more detailed documentation here: http://pubs.opengroup.org/onlinepubs/7908799/xns/getsockopt.html
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…