United States |
Previous | Contents | Index |
Table A-5 lists the auxiliary communication routines. These routines are used to provide information about a socket and to set the options on a socket.
Routine | Description |
---|---|
getpeername | Returns the name of the connected peer. |
getsockname | Returns the name associated with a socket. |
getsockopt | Returns the options set on a socket. |
setsockopt | Sets options on a socket. |
Table A-6 lists the h_errno support routines. These routines map and write error-message strings generated by the external integer h_errno .
Routine | Description |
---|---|
herror | Writes a message explaining a routine error. |
hstrerror | Accesses message explaining routine errors. |
Table A-7 lists the communication support routines. These routines perform operations such as searching databases, converting byte order of network and host addresses, reading records, and returning Internet addresses.
Routine | Description |
---|---|
decc$get_sdc | Returns the socket device's OpenVMS I/O channel associated with a socket descriptor. vaxc$get_sdc and decc$get_sdc are synonyms for the same routine. |
endhostent | Closes retrieval of network host entries and closes the network host file. |
endnetent | Closes the networks database file. |
endprotoent | Closes the protocols database file. |
endservent | Closes the network services database file. |
gethostaddr | Returns the standard host address for the processor. |
gethostbyaddr | Searches the host database for a host record with a given address. |
gethostbyname | Searches the host database for a host record with a given name or alias. |
gethostname | Returns the name of the current host. |
gethostent | Opens the network host entry by name from the network host database file. |
getnetbyaddr | Searches the network database for a network record with a given address. |
getnetbyname | Searches the network database for a network record with a given name or alias. |
getnetent | Gets a network file entry from the networks database file. |
getprotobyname | Searches the protocols database until a matching protocol name is found or until EOF is encountered. |
getprotobynumber | Searches the protocols database until a matching protocol number is found or until EOF is encountered. |
getprotoent | Gets a protocol database entry from the protocols database file. |
getservbyname | Gets information on the named service from the network services database. |
getservbyport | Gets information on the named port from the network services database. |
getservent | Gets a services file entry from the network services database file. |
hostalias | Searches for host aliases associated with a name. |
htonl | Converts longwords from network to host byte order. |
htons | Converts short integers from network to host byte order. |
inet_addr | Converts Internet addresses in text form into numeric Internet addresses. |
inet_lnaof | Returns the local network address portion of an Internet address. |
inet_makeaddr | Returns an Internet address given a network address and a local address on that network. |
inet_netof | Returns the Internet network address portion of an Internet address. |
inet_network | Converts a null-terminated text string representing an Internet network address into a network address in network byte order. |
inet_ntoa | Converts an Internet address into an ASCIZ (null-terminated) string. |
ntohl | Converts longwords from host to network byte order. |
ntohs | Converts short integers from host to network byte order. |
sethostent | Opens, rewinds, and closes the network host database file. |
setnetent | Opens, rewinds, and closes the networks database file. |
setprotoent | Opens, rewinds, and closes the protocols database file. |
setservent | Opens, rewinds, and closes the network services database file. |
socket_fd | Returns the socket descriptor associated with a Socket Device Channel for direct use with the Compaq C RTL. |
vaxc$get_sdc | Returns the socket device's OpenVMS I/O channel associated with a socket descriptor. vaxc$get_sdc and decc$get_sdc are synonyms for the same routine. |
Accepts a connection on a socket.
#include <socket.h>Routine Variants This socket routine has a variant named __bsd44_accept . Enabled by defining _sockaddr_len , this variant implements 4.4BSD-compatible semantics. See Section A.7 for more information.int accept (int s, struct sockaddr *addr, int *addrlen);
(_DECC_V4_SOURCE) int accept (int s, struct sockaddr *addr, size_t *addrlen);
(NOT _DECC_V4_SOURCE)
s
A socket descriptor that has been returned by socket , subsequently bound to an address with bind , and that is listening for connections after a listen .addr
A result parameter that is filled in with the address of the connecting entity, as known to the communications layer. The exact format of the structure to which the address parameter points is determined by the domain in which the communication is occurring. This version of Compaq C supports only the Internet domain (AF_INET).addrlen
A value-result parameter; it should initially contain the size of the structure pointed to by addr. On return it will contain the actual length, in bytes, of the structure that has been filled in by the communication layer. See <socket.h> for a description of the sockaddr structure.
This routine completes the first connection on the queue of pending connections, creates a new socket with the same properties as s, and allocates and returns a new descriptor for the socket. If no pending connections are present on the queue, and the socket is not marked as nonblocking, accept blocks the caller until a connection request is present. If the socket is marked nonblocking by using a setsockopt call and no pending connections are present on the queue, accept returns an error. The accepted socket may not be used to accept connections. The original socket s remains open (listening) for other connection requests. This call is used with connection-based socket types, currently with SOCK_STREAM.It is possible to select a socket for the purposes of performing an accept by selecting it for read.
See also bind , connect , listen , select , and socket in this section.
x A nonnegative integer that is a descriptor for the accepted socket. --1 Indicates an error; errno is set to one of the following:
- EBADF -- The socket descriptor is invalid.
- ENOTSOCK -- The socket descriptor references a file, not a socket.
- EOPNOTSUPP -- The reference socket is not of type SOCK_STREAM.
- EFAULT -- The addr parameter is not in a writable part of the user address space.
- EWOULDBLOCK -- The socket is marked nonblocking and no connections are present to be accepted.
Binds a name to a socket.
#include <socket.h>Routine Variants This socket routine has a variant named __bsd44_bind . Enabled by defining _sockaddr_len , this variant implements 4.4BSD-compatible semantics. See Section A.7 for more information.int bind (int s, struct sockaddr *name, int namelen);
(_DECC_V4_SOURCE) int bind (int s, const struct sockaddr *name, size_t namelen);
(NOT _DECC_V4_SOURCE)
s
A socket descriptor that has been created with socket .name
Address of a structure used to assign a name to the socket in the format specific to the family (AF_INET) socket address. See <socket.h> for a description of the sockaddr structure.namelen
The size, in bytes, of the structure pointed to by name.
This routine assigns a name to an unnamed socket. When a socket is created with socket it exists in a name space (address family) but has no name assigned. The bind routine requests that a name be assigned to the socket.See also connect , getsockname , listen , and socket in this appendix.
0 Indicates success. --1 Indicates an error; errno is set to one of the following values:
- EBADF -- The socket descriptor is invalid.
- ENOTSOCK -- The socket descriptor references a file, not a socket.
- EADDRNOTAVAIL -- specified address is not available from the local machine.
- EADDRINUSE -- The specified Internet address and ports are already in use.
- EINVAL -- The socket is already bound to an address.
- EACCESS -- The requested address is protected, and the current user has inadequate permission to access it.
- EFAULT -- The name parameter is not a valid part of the user address space.
Closes a connection and deletes a socket descriptor.
#include <unixio.h>int close (s);
s
A socket descriptor.
This routine deletes a descriptor from the per-process object reference table. If this is the last reference to the underlying object, then it will be deactivated.See also accept , socket , and write in this section.
0 Indicates success. --1 Indicates an error; errno is set to EBADF (The socket descriptor is invalid.)
Initiates a connection on a socket.
#include <socket.h>Routine Variants This socket routine has a variant named __bsd44_connect . Enabled by defining _sockaddr_len , this variant implements 4.4BSD-compatible semantics. See Section A.7 for more information.int connect (int s, struct sockaddr *name, int namelen);
(_DECC_V4_SOURCE) int connect (int s, const struct sockaddr *name, size_t namelen);
(NOT _DECC_V4_SOURCE)
s
A socket descriptor that has been created with socket .name
The address of a structure that specifies the name of the remote socket in the format specific to the address family (AF_INET).namelen
The size, in bytes, of the structure pointed to by name.
If s is a socket descriptor of type SOCK_DGRAM, then this call permanently specifies the peer to which data is to be sent. If it is of type SOCK_STREAM, then this call attempts to make a connection to another socket.Each communications space interprets the name parameter in its own way. This argument specifies the socket to which the socket specified in s is to be connected.
See also accept , select , socket , getsockname , and shutdown in this appendix.
0 Indicates success. --1 Indicates an error; errno is set to one of the following:
- EBADF -- The socket descriptor is invalid.
- ENOTSOCK -- The socket descriptor references a file, not a socket.
- EADDRNOTAVAIL -- specified address is not available from the local machine.
- EAFNOSUPPORT -- Address in the specified address family cannot be used with this socket.
- EISCONN -- The socket is already connected.
- ETIMEOUT -- Connection establishment timed out without establishing a connection.
- ECONNREFUSED -- The attempt to connect was forcefully rejected.
- ENETUNREACH -- The network is not reachable from this host.
- EADDRINUSE -- The specified Internet address and ports are already in use.
- EFAULT -- The name parameter is not a valid part of the user address space.
- EWOULDBLOCK -- The socket is nonblocking and the connection cannot be completed immediately. It is possible to select the socket while it is connecting by selecting it for writing.
Returns the Socket Device Channel (SDC) associated with a socket descriptor for direct use with the TCP/IP Services for OpenVMS product.
#include <socket.h>short int decc$get_sdc (int s);
s
A socket descriptor.
This routine returns the SDC associated with a socket. C socket descriptors are normally used either as file descriptors or with one of the routines that take an explicit socket descriptor as its argument. C sockets are implemented using TCP/IP Services for OpenVMS Socket Device Channels. This routine returns the SDC used by a given socket descriptor so that you can use the TCP/IP Services for OpenVMS's facilities directly by means of various I/O system services ($QIO).
0 Indicates that s is not an open socket descriptor. x The SDC number.
Closes host database file.
#include <netdb.h>void endhostent (void);
The endhostent routine closes the network host database file, previously opened with the gethostbyaddr or gethostbyname routine.See also gethostbyaddr , and gethostbyname in this section.
If the endhostent routine does not exist in your TCP/IP library, then errno is set to ENOSYS.
Closes the networks database file.
#include <netdb.h>void endnetent (void);
The endentent routine closes the networks database file, previously opened with the getnetent , setnetent , getnetbyaddr or getnetbyname routine.See also getnetent , getnetbyaddr , getnetbyname , and setnetent in this section.
If the endnetent routine does not exist in your TCP/IP library, then errno is set to ENOSYS.
Closes the protocols database file.
#include <netdb.h>void endprotoent (void);
The endprotoent routine closes the network protocols database file, previously opened with the getprotoent , getprotobyname , or getprotobynumber routine.See also getprotobyname , getprotoent and getprotobynumber in this section.
If the endprotoent routine does not exist in your TCP/IP library, then errno is set to ENOSYS.
Previous | Next | Contents | Index |
|