The IBM® socket implementation
differs from the Berkeley socket implementation. The following list summarizes the
differences in the two methods:
- The IBM implementation does
not support AF_INET6 sockets.
- Under IBM implementation,
you must make reference to the additional header file, TCPERRNO.H,
if you want to refer to the networking errors other than those described
in the compiler-supplied ERRNO.H file.
- Under IBM implementation,
you must use the tcperror() routine to print the networking errno
messages. tcperror() should be used only after socket calls, and perror()
should be used only after C library calls.
- Under IBM implementation,
you must include MANIFEST.H to remap the socket function long names
to eight-character names.
- The IBM ioctl() call implementation
might differ from the current Berkeley ioctl() call implementation.
See ioctl() for a description of the
functions supported by the IBM implementation.
- The IBM getsockopt() and
setsockopt() calls support only a subset of the options available.
See getsockopt() and setsockopt() for details about the supported
options.
- The IBM fcntl() call supports
only a subset of the options available. See fcntl() for details about the supported commands.
- The IBM implementation supports
an increased maximum number (2000) of simultaneous sockets through
the use of the maxdesc() call. (Only 1997 simultaneous sockets can
be used, however.) The default maximum number of sockets is 47, any
or all of which can be AF_INET sockets.
Keep the following information in mind while creating your C socket
application:
- Compile all C source using the def(MVS™) preprocessor symbol.
- During debugging, set sock_do_teststor (1) to on to validate
all storage addresses. After debugging, use sock_do_teststor (0)
set to off.