Rudiments
Public Member Functions
inetclientsocket Class Reference

Inherits clientsocket, and inetsocketutil.

List of all members.

Public Member Functions

 inetclientsocket ()
 inetclientsocket (const inetclientsocket &i)
inetclientsocketoperator= (const inetclientsocket &i)
virtual ~inetclientsocket ()
int32_t connect (const char *host, uint16_t port, long timeoutsec, long timeoutusec, unsigned long retrywait, unsigned long retrycount)
void initialize (constnamevaluepairs *cd)
void initialize (const char *host, uint16_t port, long timeoutsec, long timeoutusec, unsigned long retrywait, unsigned long retrycount)
int32_t connect ()

Detailed Description

The inetclientsocket class allows you to write programs that can talk to other programs across a network over TCP stream sockets.

The inetclientsocket class provides methods for connecting to servers. Its ultimate parent class: filedescriptor provides methods for reading and writing data and closing connections.


Constructor & Destructor Documentation

inetclientsocket::inetclientsocket ( )

Creates an instance of the inetclientsocket class.

inetclientsocket::inetclientsocket ( const inetclientsocket i)

Creates an instance of the inetclientsocket class that is a copy of "i".

virtual inetclientsocket::~inetclientsocket ( ) [virtual]

Deletes this instance of the inetclientsocket class.


Member Function Documentation

int32_t inetclientsocket::connect ( const char *  host,
uint16_t  port,
long  timeoutsec,
long  timeoutusec,
unsigned long  retrywait,
unsigned long  retrycount 
)

This convenience method calls the initialize() and connect() methods of the class.

Returns RESULT_SUCCESS on success and RESULT_ERROR on failure.

See the other connect() method for a note about use in multithreaded applications.

int32_t inetclientsocket::connect ( ) [virtual]

Attempts to connect to the "host" and "port" set earlier using one of the initialize() methods. If the connection fails, it will retry "retrycount" times, waiting "retrywait" seconds between retrycount. If "host" resolves to multiple addresses, each address will be tried "retrycount" times.

Setting "retrycount" to 0 will cause it to try to connect indefinitely. Setting "retrywait" to 0 will cause it to try to connect over and over as fast as possible (not recommended).

Each attempt to connect will wait "timeoutsec" seconds and "timeoutusec" microseconds for the connect to succeed. Specifying -1 for either parameter will cause the attempt to wait until the underlying protocol times out which may be up to 2 minutes.

Returns RESULT_SUCCESS on success and RESULT_ERROR on failure.

Note that if your system does not support getaddrinfo() then connect() uses the hostentry and protocolentry classes. If you are using this method in a multithreaded application, you may need to supply those classes with mutexes. See hostentry.h and protocolentry.h for more detail.

Implements client.

void inetclientsocket::initialize ( const char *  host,
uint16_t  port,
long  timeoutsec,
long  timeoutusec,
unsigned long  retrywait,
unsigned long  retrycount 
)

Initializes the class to use "host", "port", "timeoutsec", "timeoutusec", "retrywait" and "retrycount" when connect() is called.

void inetclientsocket::initialize ( constnamevaluepairs cd) [virtual]

Queries constnamevaluepairs "cd" for "host", "port", "timeoutsec", "timeoutusec", "retrywait" and "retrycount". Initializes the class to use the result when connect() is called.

Implements client.

inetclientsocket& inetclientsocket::operator= ( const inetclientsocket i)

Makes this instance of the inetclientsocket class identical to "i".