United States |
Previous | Contents | Index |
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.
Closes the network services database file.
#include <netdb.h>void endservent (void);
The endservent routine closes the network services database file, previously opened with the getservent , getservbyname , or getservbyport routine.See also getservent , getservbyname , and getservbyport in this section.
If the endservent routine does not exist in your TCP/IP library, then errno is set to ENOSYS.
Returns the standard host address for the processor.
#include <socket.h>int gethostaddr (char *addr);
addr
A pointer to the buffer in which the standard host address for the current processor is returned.
This system call returns the standard host address for the current processor. The returned address is null-terminated. The addr parameter must point to at least 16 bytes of free space.Host addresses are limited to 16 characters.
0 Indicates success. --1 Indicates that an error has occurred and is further specified in the global errno .
Searches the host database sequentially from the beginning of the database for a host record with a given address.
#include <netdb.h>Routine Variants This socket routine has a variant named __bsd44_gethostbyaddr . Enabled by defining _SOCKADDR_LEN , this variant implements 4.4BSD-compatible semantics. See Section A.7 for more information.struct hostent *gethostbyaddr (char *addr, int len, int type);
addr
A pointer to a series of bytes in network order specifying the address of the host sought. This argument does not point to an ASCII string.len
The number of bytes in the address pointed to by the addr argument.type
The type of address format being sought. Currently, only AF_INET (defined in <socket.h> ) is supported.)
This routine finds the first host record in the host database with the given address.The gethostbyaddr routine uses a common static area for its return values. This means that subsequent calls this routine will overwrite any existing host entry. You must make a copy of the host entry if you wish to save it.
NULL Indicates an error. x A pointer to an object having the hostent structure. See <netdb.h> for a description of the hostent structure. Depending on the error condition and the socket implementation selected, errno or h_errno might be set to further indicate the error. (See sections A.5 and A.6.)
Searches the host database sequentially from the beginning of the database for a host record with a given name or alias.
#include <netdb.h>Routine Variants This socket routine has a variant named __bsd44_gethostbyname . Enabled by defining _SOCKADDR_LEN , this variant implements 4.4BSD-compatible semantics. See Section A.7 for more information.struct hostent *gethostbyname (char *name);
name
A pointer to a null-terminated character string containing the name or an alias of the host sought.
This routine finds the first host in the host database with the given name or alias.The gethostbyname routine uses a common static area for its return values. This means that subsequent calls to this routine will overwrite any existing host entry. You must make a copy of the host entry if you wish to save it.
NULL Indicates an error. x A pointer to an object having the hostent structure. See <netdb.h> for a description of the hostent structure. Depending on the error condition and the socket implementation selected, errno or h_errno might be set to further indicate the error. (See sections A.5 and A.6.)
Gets a host file entry from the network host database file.
#include <netdb.h>struct hostent *gethostent (void);
The gethostent routine reads the next entry of the database, opening a connection to the database, if necessary.See the <netdb.h> header file for a description of the hostent structure.
This routine uses a common static area for its return values. Therefore, subsequent calls to this routine overwrite any existing network entry. You must make a copy of the network services entry, if you wish to save it.
x A pointer to the hostent structure. NULL Indicates an error.
Returns the name currently associated to the host.
#include <socket.h>int gethostname (char *name, int namelen);
(_DECC_V4_SOURCE) int gethostname (char *name, size_t namelen);
(NOT _DECC_V4_SOURCE)
name
The address of a buffer into which the name should be written. The returned name is null-terminated unless sufficient space is not provided.namelen
The size of the buffer pointed to by name.
This routine returns the hostname maintained by the TCP/IP Services for OpenVMS or compatible TCP/IP product.
0 Indicates success. --1 Indicates an error; errno is set to one of the following:
- EFAULT -- The buffer decribed by name and namelen is not a valid, writable part of the user address space.
- EINVAL -- The returned name is an invalid address.
Searches the network database sequentially from the beginning of the database for a network record with a given address.
#include <netdb.h>struct netent *getnetbyaddr (long net, int type);
net
The network number, in host byte order, of the network database entry required.type
The type of network sought. Currently, only AF_INET (defined in <socket.h> ) is supported.)
This routine finds the first network record in the network database with the given address.The getnetent , getnetbyaddr , and getnetbyname routines all use a common static area for their return values. This means that subsequent calls to any of these routines will overwrite any existing network entry. You must make a copy of the network entry if you wish to save it.
NULL Indicates EOF or an error. x A pointer to an object having the netent structure. See the <netdb.h> header file for a description of the netent structure.
Searches the network database sequentially from the beginning of the database for a network record with a given name or alias.
#include <netdb.h>struct netent *getnetbyname (char *name);
name
A pointer to a null-terminated character string of the name or an alias of the network sought.
This routine finds the first host in the network database with the given name or alias.The getnetent , getnetbyaddr , and getnetbyname routines all use a common static area for their return values. This means that subsequent calls to any of these routines will overwrite any existing network entry. You must make a copy of the network entry if you wish to save it.
NULL Indicates EOF or an error; errno is set to EFAULT (The buffer described by name is not a valid, writable part of the user address space.) x A pointer to an object having the netent structure. See the <netdb.h> header file for a description of the netent structure. Depending on the error condition and the socket implementation selected, errno or h_errno might be set to further indicate the error. (See sections A.5 and A.6.)
Gets a network file entry from the networks database file.
#include <netdb.h>struct netent *getnetnet (void);
The getnetent routine opens and sequentially reads the networks database file to retrieve network information.See the <netdb.h> header file for a description of the netent structure.
The getnetent routine uses a common static area for its return values, so subsequent calls to this routine overwrite any existing network entry. You must make a copy of the network services entry, if you wish to save it.
See also setnetent , and endnetent in this section.
x A pointer to a netent structure. 0 Indicates an error or EOF.
Returns the name of the connected peer.
#include <socket.h>Routine Variants This socket routine has a variant named __bsd44_getpeername . Enabled by defining _SOCKADDR_LEN , this variant implements 4.4BSD-compatible semantics. See Section A.7 for more information.int getpeername (int s, struct sockaddr *name, int *namelen);
(_DECC_V4_SOURCE) int getpeername (int s, struct sockaddr *name, size_t *namelen);
(NOT _DECC_V4_SOURCE)
s
A socket descriptor that has been created using socket .name
A pointer to a buffer within which the peer name is to be returned.namelen
An address of an integer that specifies the size of the name buffer. On return, it will be modified to reflect the actual length, in bytes, of the name returned.
This routine returns the name of the peer connected to the socket descriptor specified.See also bind , getsockname , and socket in this appendix.
0 Indicates success. --1 Indicates an error; errno is set to one of the following:
- EBADF -- The descriptor is invalid.
- ENOTSOCK -- The socket descriptor references a file, not a socket.
- ENOTCONN -- The socket is not connected.
- ENOBUFS -- Resources were insufficient in the system to perform the operation.
- EFAULT -- The name parameter is not a valid part of the user address space.
Previous | Next | Contents | Index |
|