Interview Questions

What's with the second parameter in bind()?

Unix Socket FAQ for Network programming


(Continued from previous question...)

What's with the second parameter in bind()?

The man page shows it as "struct sockaddr *my_addr". The sockaddr struct though is just a place holder for the structure it really wants. You have to pass different structures depending on what kind of socket you have. For an AF_INET socket, you need the sockaddr_in structure. It has three fields of interest:

sin_family
     Set this to AF_INET.

sin_port
The network byte-ordered 16 bit port number

sin_addr
The host's ip number.
This is a struct in_addr,
which contains  only one field, 
s_addr which is a u_long.

(Continued on next question...)

Other Interview Questions