Internet Socket Address Formats
-------------------------------
In the Internet namespace, for both IPv4 (`AF_INET') and IPv6
(`AF_INET6'), a socket address consists of a host address and a port on
that host. In addition, the protocol you choose serves effectively as
a part of the address because local port numbers are meaningful only
within a particular protocol.
The data types for representing socket addresses in the Internet
namespace are defined in the header file `netinet/in.h'.
- Data Type: struct sockaddr_in
This is the data type used to represent socket addresses in the
Internet namespace. It has the following members:
`sa_family_t sin_family'
This identifies the address family or format of the socket
address. You should store the value `AF_INET' in this member.
Note:Socket Addresses.
`struct in_addr sin_addr'
This is the Internet address of the host machine. Note:Host
Addresses, and Note:Host Names, for how to get a value
to store here.
`unsigned short int sin_port'
This is the port number. Note:Ports.
When you call `bind' or `getsockname', you should specify `sizeof
(struct sockaddr_in)' as the LENGTH parameter if you are using an IPv4
Internet namespace socket address.
- Data Type: struct sockaddr_in6
This is the data type used to represent socket addresses in the
IPv6 namespace. It has the following members:
`sa_family_t sin6_family'
This identifies the address family or format of the socket
address. You should store the value of `AF_INET6' in this
member. Note:Socket Addresses.
`struct in6_addr sin6_addr'
This is the IPv6 address of the host machine. Note:Host
Addresses, and Note:Host Names, for how to get a value
to store here.
`uint32_t sin6_flowinfo'
This is a currently unimplemented field.
`uint16_t sin6_port'
This is the port number. Note:Ports.