inetsocketclient Class Reference

Inherits socketclient, and inetsocketutil.

## Public Member Functions

| inetsocketclient ()
| inetsocketclient (const inetsocketclient &i)
inetsocketclient & | operator= (const inetsocketclient &i)
virtual | ~inetsocketclient ()
int32_t | connect (const char *host, uint16_t port, int32_t timeoutsec, int32_t timeoutusec, uint32_t retrywait, uint32_t retrycount)
void | initialize (constnamevaluepairs *cd)
void | initialize (const char *host, uint16_t port, int32_t timeoutsec, int32_t timeoutusec, uint32_t retrywait, uint32_t retrycount)
int32_t | connect ()
Public Member Functions inherited from socketclient
| socketclient ()
| socketclient (const socketclient &c)
socketclient & | operator= (const socketclient &c)
virtual | ~socketclient ()
virtual bool | supportsBlockingNonBlockingModes ()
virtual bool | useNonBlockingMode () const
virtual bool | useBlockingMode () const
virtual bool | isUsingNonBlockingMode () const
virtual int32_t | ioCtl (int32_t command, void *arg) const
Public Member Functions inherited from client
| client ()
| client (const client &c)
client & | operator= (const client &c)
virtual | ~client ()
virtual const char * | getVerboseConnectError ()
virtual void | setVerboseConnectError (const char *error)
Public Member Functions inherited from filedescriptor
| filedescriptor ()
| filedescriptor (const filedescriptor &f)
filedescriptor & | operator= (const filedescriptor &f)
virtual | ~filedescriptor ()
virtual bool | close ()
int32_t | getFileDescriptor () const
void | setFileDescriptor (int32_t filedesc)
int32_t | duplicate () const
bool | duplicate (int32_t newfd) const
ssize_t | write (uint16_t number) const
ssize_t | write (uint32_t number) const
ssize_t | write (uint64_t number) const
ssize_t | write (int16_t number) const
ssize_t | write (int32_t number) const
ssize_t | write (int64_t number) const
ssize_t | write (float number) const
ssize_t | write (double number) const
ssize_t | write (unsigned char character) const
ssize_t | write (char character) const
ssize_t | write (bool value) const
ssize_t | write (const unsigned char *string) const
ssize_t | write (const char *string) const
ssize_t | write (const unsigned char *string, size_t size) const
ssize_t | write (const char *string, size_t size) const
ssize_t | write (const void *buffer, size_t size) const
ssize_t | write (uint16_t number, int32_t sec, int32_t usec) const
ssize_t | write (uint32_t number, int32_t sec, int32_t usec) const
ssize_t | write (uint64_t number, int32_t sec, int32_t usec) const
ssize_t | write (int16_t number, int32_t sec, int32_t usec) const
ssize_t | write (int32_t number, int32_t sec, int32_t usec) const
ssize_t | write (int64_t number, int32_t sec, int32_t usec) const
ssize_t | write (float number, int32_t sec, int32_t usec) const
ssize_t | write (double number, int32_t sec, int32_t usec) const
ssize_t | write (unsigned char character, int32_t sec, int32_t usec) const
ssize_t | write (char character, int32_t sec, int32_t usec) const
ssize_t | write (bool value, int32_t sec, int32_t usec) const
ssize_t | write (const unsigned char *string, int32_t sec, int32_t usec) const
ssize_t | write (const char *string, int32_t sec, int32_t usec) const
ssize_t | write (const unsigned char *string, size_t size, int32_t sec, int32_t usec) const
ssize_t | write (const char *string, size_t size, int32_t sec, int32_t usec) const
ssize_t | write (const void *buffer, size_t size, int32_t sec, int32_t usec) const
size_t | printf (const char *format,...)
size_t | printf (const char *format, va_list *argp)
void | safePrint (char c)
void | safePrint (const char *str)
void | safePrint (const char *str, int32_t length)
void | printBits (unsigned char value)
void | printBits (uint16_t value)
void | printBits (uint32_t value)
void | printBits (uint64_t value)
void | printBits (char value)
void | printBits (int16_t value)
void | printBits (int32_t value)
void | printBits (int64_t value)
void | printBits (unsigned char *bits, uint64_t size)
ssize_t | read (uint16_t *buffer) const
ssize_t | read (uint32_t *buffer) const
ssize_t | read (uint64_t *buffer) const
ssize_t | read (int16_t *buffer) const
ssize_t | read (int32_t *buffer) const
ssize_t | read (int64_t *buffer) const
ssize_t | read (float *buffer) const
ssize_t | read (double *buffer) const
ssize_t | read (unsigned char *buffer) const
ssize_t | read (char *buffer) const
ssize_t | read (bool *buffer) const
ssize_t | read (unsigned char *buffer, size_t size) const
ssize_t | read (char *buffer, size_t size) const
ssize_t | read (void *buf, size_t size) const
ssize_t | read (char **buffer, const char *terminator) const
ssize_t | read (uint16_t *buffer, int32_t sec, int32_t usec) const
ssize_t | read (uint32_t *buffer, int32_t sec, int32_t usec) const
ssize_t | read (uint64_t *buffer, int32_t sec, int32_t usec) const
ssize_t | read (int16_t *buffer, int32_t sec, int32_t usec) const
ssize_t | read (int32_t *buffer, int32_t sec, int32_t usec) const
ssize_t | read (int64_t *buffer, int32_t sec, int32_t usec) const
ssize_t | read (float *buffer, int32_t sec, int32_t usec) const
ssize_t | read (double *buffer, int32_t sec, int32_t usec) const
ssize_t | read (unsigned char *buffer, int32_t sec, int32_t usec) const
ssize_t | read (char *buffer, int32_t sec, int32_t usec) const
ssize_t | read (bool *buffer, int32_t sec, int32_t usec) const
ssize_t | read (unsigned char *buffer, size_t size, int32_t sec, int32_t usec) const
ssize_t | read (char *buffer, size_t size, int32_t sec, int32_t usec) const
ssize_t | read (void *buf, size_t size, int32_t sec, int32_t usec) const
ssize_t | read (char **buffer, const char *terminator, int32_t sec, int32_t usec) const
int32_t | waitForNonBlockingRead (int32_t sec, int32_t usec) const
int32_t | waitForNonBlockingWrite (int32_t sec, int32_t usec) const
void | retryInterruptedReads ()
void | dontRetryInterruptedReads ()
bool | getRetryInterruptedReads () const
void | retryInterruptedWrites ()
void | dontRetryInterruptedWrites ()
bool | getRetryInterruptedWrites () const
void | retryInterruptedWaits ()
void | dontRetryInterruptedWaits ()
bool | getRetryInterruptedWaits () const
void | retryInterruptedFcntl ()
void | dontRetryInterruptedFcntl ()
bool | getRetryInterruptedFcntl () const
void | retryInterruptedIoctl ()
void | dontRetryInterruptedIoctl ()
bool | getRetryInterruptedIoctl () const
void | allowShortReads ()
void | dontAllowShortReads ()
void | allowShortWrites ()
void | dontAllowShortWrites ()
void | useListener (listener *lstnr)
void | dontUseListener ()
listener * | getListener ()
void | useListenerInsideReads ()
void | dontUseListenerInsideReads ()
void | useListenerInsideWrites ()
void | dontUseListenerInsideWrites ()
virtual bool | passFileDescriptor (int32_t fd) const
virtual bool | receiveFileDescriptor (int32_t *fd) const
virtual bool | passSocket (int32_t sock) const
virtual bool | receiveSocket (int32_t *sock) const
void | translateByteOrder ()
void | dontTranslateByteOrder ()
virtual int32_t | fCntl (int32_t command, long arg) const
bool | useNaglesAlgorithm ()
bool | dontUseNaglesAlgorithm ()
bool | setTcpWriteBufferSize (int32_t size)
bool | getTcpWriteBufferSize (int32_t *size)
bool | setTcpReadBufferSize (int32_t size)
bool | getTcpReadBufferSize (int32_t *size)
bool | disableIPv4 ()
bool | enableIPv4 ()
const char * | getType () const
char * | getPeerAddress () const
bool | setWriteBufferSize (ssize_t size) const
bool | flushWriteBuffer (int32_t sec, int32_t usec) const
bool | setReadBufferSize (ssize_t size) const
bool | closeOnExec ()
bool | dontCloseOnExec ()
bool | getCloseOnExec ()

## Additional Inherited Members

Static Public Member Functions inherited from filedescriptor
static uint16_t | hostToNet (uint16_t value)
static uint32_t | hostToNet (uint32_t value)
static uint64_t | hostToNet (uint64_t value)
static uint16_t | netToHost (uint16_t value)
static uint32_t | netToHost (uint32_t value)
static uint64_t | netToHost (uint64_t value)
Private Member Functions inherited from inetsocketutil
| inetsocketutil ()
| inetsocketutil (const inetsocketutil &i)
inetsocketutil & | operator= (const inetsocketutil &i)
virtual | ~inetsocketutil ()
void | initialize (const char *address, uint16_t port)

## Detailed Description

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

The inetsocketclient 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

inetsocketclient::inetsocketclient | ( |  | ) |

Creates an instance of the inetsocketclient class.

inetsocketclient::inetsocketclient | ( | const inetsocketclient & | i | ) |

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

virtual inetsocketclient::~inetsocketclient | ( |  | ) |

virtual

Deletes this instance of the inetsocketclient class.

## Member Function Documentation

int32_t inetsocketclient::connect | ( | const char * | host,
|  | uint16_t | port,
|  | int32_t | timeoutsec,
|  | int32_t | timeoutusec,
|  | uint32_t | retrywait,
|  | uint32_t | 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 inetsocketclient::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 inetsocketclient::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.

void inetsocketclient::initialize | ( | const char * | host,
|  | uint16_t | port,
|  | int32_t | timeoutsec,
|  | int32_t | timeoutusec,
|  | uint32_t | retrywait,
|  | uint32_t | retrycount
| ) |  |

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

inetsocketclient& inetsocketclient::operator= | ( | const inetsocketclient & | i | ) |

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