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 ()
- Public Member Functions inherited from clientsocket
 clientsocket ()
 clientsocket (const clientsocket &c)
clientsocketoperator= (const clientsocket &c)
virtual ~clientsocket ()
virtual bool supportsBlockingNonBlockingModes ()
virtual bool useNonBlockingMode () const
virtual bool useBlockingMode () const
- Public Member Functions inherited from client
 client ()
 client (const client &c)
clientoperator= (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)
filedescriptoroperator= (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
bool isUsingNonBlockingMode () 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, long sec, long usec) const
ssize_t write (uint32_t number, long sec, long usec) const
ssize_t write (uint64_t number, long sec, long usec) const
ssize_t write (int16_t number, long sec, long usec) const
ssize_t write (int32_t number, long sec, long usec) const
ssize_t write (int64_t number, long sec, long usec) const
ssize_t write (float number, long sec, long usec) const
ssize_t write (double number, long sec, long usec) const
ssize_t write (unsigned char character, long sec, long usec) const
ssize_t write (char character, long sec, long usec) const
ssize_t write (bool value, long sec, long usec) const
ssize_t write (const unsigned char *string, long sec, long usec) const
ssize_t write (const char *string, long sec, long usec) const
ssize_t write (const unsigned char *string, size_t size, long sec, long usec) const
ssize_t write (const char *string, size_t size, long sec, long usec) const
ssize_t write (const void *buffer, size_t size, long sec, long usec) const
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, long sec, long usec) const
ssize_t read (uint32_t *buffer, long sec, long usec) const
ssize_t read (uint64_t *buffer, long sec, long usec) const
ssize_t read (int16_t *buffer, long sec, long usec) const
ssize_t read (int32_t *buffer, long sec, long usec) const
ssize_t read (int64_t *buffer, long sec, long usec) const
ssize_t read (float *buffer, long sec, long usec) const
ssize_t read (double *buffer, long sec, long usec) const
ssize_t read (unsigned char *buffer, long sec, long usec) const
ssize_t read (char *buffer, long sec, long usec) const
ssize_t read (bool *buffer, long sec, long usec) const
ssize_t read (unsigned char *buffer, size_t size, long sec, long usec) const
ssize_t read (char *buffer, size_t size, long sec, long usec) const
ssize_t read (void *buf, size_t size, long sec, long usec) const
ssize_t read (char **buffer, const char *terminator, long sec, long usec) const
int32_t waitForNonBlockingRead (long sec, long usec) const
int32_t waitForNonBlockingWrite (long sec, long usec) const
void retryInterruptedReads ()
void dontRetryInterruptedReads ()
void retryInterruptedWrites ()
void dontRetryInterruptedWrites ()
void retryInterruptedWaits ()
void dontRetryInterruptedWaits ()
void retryInterruptedFcntl ()
void dontRetryInterruptedFcntl ()
void retryInterruptedIoctl ()
void dontRetryInterruptedIoctl ()
void allowShortReads ()
void dontAllowShortReads ()
void allowShortWrites ()
void dontAllowShortWrites ()
void useListener (listener *lstnr)
void dontUseListener ()
listenergetListener ()
void useListenerInsideReads ()
void dontUseListenerInsideReads ()
void useListenerInsideWrites ()
void dontUseListenerInsideWrites ()
virtual bool passFileDescriptor (int32_t fd) const
virtual bool receiveFileDescriptor (int32_t *fd) const
void translateByteOrder ()
void dontTranslateByteOrder ()
int32_t fCntl (int32_t command, long arg) const
int32_t ioCtl (int32_t command, void *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)
const char * getType () const
char * getPeerAddress () const
bool setWriteBufferSize (ssize_t size) const
bool flushWriteBuffer (long sec, long usec) const
bool setReadBufferSize (ssize_t size) const
bool closeOnExec ()
bool dontCloseOnExec ()
bool getCloseOnExec ()

Additional Inherited Members

- Private Member Functions inherited from inetsocketutil
 inetsocketutil ()
 inetsocketutil (const inetsocketutil &i)
inetsocketutiloperator= (const inetsocketutil &i)
virtual ~inetsocketutil ()
void initialize (const char *address, uint16_t port)

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 ( 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 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.

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

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