Loco
07-24-2002, 05:30 PM
This question was taken from the original FAQ.
2.2 - 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.
2.2 - 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.