The IPX address family defines the addressing structure for protocols that use standard IPX socket addressing. For these transports, an endpoint address consists of a network number, node address and socket number.
The network number is an administrative domain and typically names a single Ethernet or token ring segment. The node number is a station's physical address. The combination of net and node form a unique station address which is presumed to be unique in the world. Net/node numbers are represented in ASCII in either block or dashed notation as: '0101a040,00001b498765' or '01-01-a0-40,00-00-1b-49-87-65'. Leading zero's need not be present.
The IPX socket number is a network/transport service number much like a TCP port number and is not to be confused with the Windows Sockets socket descriptor. IPX Socket numbers are global to the end-station and cannot be bound to specific net/node addresses. For instance, if the end-station has two network interface cards, a bound socket can send and receive on both cards. In particular, datagram sockets would receive broadcast datagrams on both cards.
Caution Sockaddr_ipx is 14 bytes long and is shorter than the 16-byte sockaddr reference structure. IPX/SPX implementations may accept the 16 byte length as well as the true length. If you use sockaddr_ipx and a hard coded length of 16 bytes, the implementation may assume that it has access to the two bytes following your structure.
Field | Value |
---|---|
sa_family | Address family AF_IPX in host order. |
Sa_netnum | IPX network identifier in network order. |
Sa_nodenum | Station node address, flushed right. |
Sa_socket | IPX socket number in network order. |