Socket Data Type
A new data type, SOCKET, has been defined. This is needed because a Windows
Sockets application cannot assume that socket descriptors are equivalent to file
descriptors as they are in UNIX. Furthermore, in UNIX, all handles, including
socket handles, are small, non-negative integers, and some applications make
assumptions that this will be true. Windows Sockets handles have no restrictions,
other than that the value INVALID_SOCKET is not a valid socket. Socket handles
may take any value in the range 0 to INVALID_SOCKET-1.
Because the SOCKET type is unsigned, compiling existing source code from, for
example, a UNIX environment may lead to compiler warnings about signed/unsigned
data type mismatches.
This means, for example, that checking for errors when the
socket and
accept routines return should not be done by comparing the return value with -1, or
seeing if the value is negative (both common, and legal, approaches in BSD).
Instead, an application should use the manifest constant INVALID_SOCKET as
defined in WINSOCK2.H. For example:
TYPICAL BSD STYLE:
s = socket(...);
if (s == -1) /* or s < 0 */
{...}
PREFERRED STYLE:
s = socket(...);
if (s == INVALID_SOCKET)
{...}
- 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