Tuesday, September 6, 2011

SO_TYPE getsockopt

Retrieving the Socket Type (SO_TYPE) using getsockopt 

Some socket options can only be retrieved. The SO_TYPE is one such example. This option allows a subroutine, which is passed a socket (as a file descriptor), to determine what kind of socket it is dealing with. 

Below shows an example program that determines the type of the socket s. 


Here is the sample Output: 

[sgupta@rhel54x64 socket]$ gcc getty.c -o getty 
[sgupta@rhel54x64 socket]$ ./getty 
Socket s : 3 
SO_TYPE : 1 
SOCK_STREAM = 1 
[sgupta@rhel54x64 socket]$ 

From this output, you can see that socket number 3 was reported to be of type 1 in the following output line. Note that the C macro SOCK_STREAM is the value of 1, also, confirming that the option value is correct. Just for fun, you might want to modify the program to try the value of SOCK_DGRAM in the socket(2) function call and see whether the reported value changes.

See Also
SO_PASSCRED & SO_PEERCRED, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_REUSEADD, SO_OBINLINE

No comments:

Post a Comment