Byte Ordering
Care must always be taken to account for any differences between the byte
ordering used by Intel Architecture and the byte ordering used on the wire by
individual transport protocols. Any reference to an address or port number passed to
or from a Windows Sockets routine must be in the network order for the
protocol being utilized. In the case of IP, this includes the IP address and port
fields of a sockaddr_in structure (but not the sin_family field).
Consider an application which normally contacts a server on the TCP port
corresponding to the "time" service, but which provides a mechanism for the user to
specify that an alternative port is to be used. The port number returned by
getservbyname() is already in network order, which is the format required for
constructing an address, so no translation is required. However if the user elects
to use a different port, entered as an integer, the application must convert
this from host to TCP/IP network order (using the WSAHtons() function) before
using it to construct an address. Conversely, if the application wishes to display
the number of the port within an address (returned via, e.g., getpeername()),
the port number must be converted from network to host order (using WSANtohs())
before it can be displayed.
Since the Intel Architecture and Internet byte orders are different, the
conversions described above are unavoidable. Application writers are cautioned that
they should use the standard conversion functions provided as part of WinSock
rather than writing their own conversion code, since future implementations of
WinSock are likely to run on systems for which the host order is identical to
the network byte order. Only applications which use the standard conversion
functions are likely to be portable.
Consider an application that normally contacts a server on the TCP port
corresponding to the "time" service, but provides a mechanism for the user to specify
an alternative port. The port number returned by
getservbyname is already in network order, which is the format required for constructing an
address so no translation is required. However, if the user elects to use a
different port, entered as an integer, the application must convert this from
host to TCP/IP network order (using the
WSAHtons function) before using it to construct an address. Conversely, if the
application were to display the number of the port within an address (returned by
getpeername for example), the port number must be converted from network to host order
(using
WSANtohs) before it can be displayed.
Since the Intel and Internet byte orders are different, the conversions
described above are unavoidable. Application writers are cautioned that they should
use the standard conversion functions provided as part of Windows Sockets rather than writing their own conversion code since future implementations of Windows Sockets are likely to run on systems for which the host order is identical to the
network byte order. Only applications that use the standard conversion functions
are likely to be portable.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database