Nebula
Loading...
Searching...
No Matches
Net::StdTcpClient Class Reference

#include <stdtcpclient.h>

Detailed Description

A TcpClient object is used to communicate with a TcpServer.

Any number of clients can connect to a TcpServer, each connected client spawns a TcpClientConnection object on the server side which represents this client on the server. Sending and receiving data is handled through streams, streams offer the most flexible model to read and write data in different formats by connecting different stream readers and stream writers. The idea is to write data to the send stream, and to send of the accumulated data in the send stream once by calling the Send() method. To receive data from the server, call the Recv() method which will either block until, or return true in non-blocking mode as soon as data is available. The received data will be written into the receive stream, where the application can read it in any way it desires.

Inherits Core::RefCounted.

Public Types

enum  Result { Error , Success , Connecting }
 

Public Member Functions

 StdTcpClient ()
 constructor
 
virtual ~StdTcpClient ()
 destructor
 
void SetBlocking (bool b)
 enable/disable blocking behaviour
 
bool IsBlocking () const
 get blocking behaviour
 
void SetServerAddress (const IpAddress &addr)
 set the server address to connect to
 
const IpAddressGetServerAddress () const
 get the server address
 
Result Connect ()
 establish a connection with the server
 
void Disconnect ()
 disconnect from the server
 
bool IsConnected ()
 return true if currently connected
 
bool Send ()
 send accumulated content of send stream to server
 
const Ptr< IO::Stream > & GetSendStream ()
 access to send stream
 
bool Recv ()
 receive data from server into recv stream
 
const Ptr< IO::Stream > & GetRecvStream ()
 access to recv stream
 
- Public Member Functions inherited from Core::RefCounted
 RefCounted ()
 constructor
 
int GetRefCount () const
 get the current refcount
 
void AddRef ()
 increment refcount by one
 
void Release ()
 decrement refcount and destroy object if refcount is zero
 
bool IsInstanceOf (const Rtti &rtti) const
 return true if this object is instance of given class
 
bool IsInstanceOf (const Util::String &className) const
 return true if this object is instance of given class by string
 
bool IsInstanceOf (const Util::FourCC &classFourCC) const
 return true if this object is instance of given class by fourcc
 
bool IsA (const Rtti &rtti) const
 return true if this object is instance of given class, or a derived class
 
bool IsA (const Util::String &rttiName) const
 return true if this object is instance of given class, or a derived class, by string
 
bool IsA (const Util::FourCC &rttiFourCC) const
 return true if this object is instance of given class, or a derived class, by fourcc
 
const Util::StringGetClassName () const
 get the class name
 
Util::FourCC GetClassFourCC () const
 get the class FourCC code
 

Protected Attributes

Ptr< Socketsocket
 
IpAddress serverAddr
 
bool blocking
 
Ptr< IO::StreamsendStream
 
Ptr< IO::StreamrecvStream
 
bool inConnectionState
 

Private Member Functions

 __DeclareClass (StdTcpClient)
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::RefCounted
static void DumpRefCountingLeaks ()
 dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!)
 
- Protected Member Functions inherited from Core::RefCounted
virtual ~RefCounted ()
 destructor (called when refcount reaches zero)
 

Member Enumeration Documentation

◆ Result

Enumerator
Error 
Success 
Connecting 

Constructor & Destructor Documentation

◆ StdTcpClient()

Net::StdTcpClient::StdTcpClient ( )

constructor

◆ ~StdTcpClient()

Net::StdTcpClient::~StdTcpClient ( )
virtual

destructor

Member Function Documentation

◆ __DeclareClass()

Net::StdTcpClient::__DeclareClass ( StdTcpClient )
private

◆ Connect()

StdTcpClient::Result Net::StdTcpClient::Connect ( )

establish a connection with the server

Establish a connection with the server.

If the client is set to non-blocking at the time this method is called, it will return immediately with the result Connecting. To check if the connection is standing, just call Connect() again in intervals which will eventually return Success. On a blocking client, connect returns after a connection has been established, or with a time out when no connection could be established.

◆ Disconnect()

void Net::StdTcpClient::Disconnect ( )

disconnect from the server

This disconnects the current connection.

◆ GetRecvStream()

const Ptr< Stream > & Net::StdTcpClient::GetRecvStream ( )

access to recv stream

◆ GetSendStream()

const Ptr< Stream > & Net::StdTcpClient::GetSendStream ( )

access to send stream

◆ GetServerAddress()

const IpAddress & Net::StdTcpClient::GetServerAddress ( ) const
inline

get the server address

◆ IsBlocking()

bool Net::StdTcpClient::IsBlocking ( ) const
inline

get blocking behaviour

◆ IsConnected()

bool Net::StdTcpClient::IsConnected ( )

return true if currently connected

Return true if the socket is currently connected.

This will actually probe the connection using a select().

◆ Recv()

bool Net::StdTcpClient::Recv ( )

receive data from server into recv stream

◆ Send()

bool Net::StdTcpClient::Send ( )

send accumulated content of send stream to server

◆ SetBlocking()

void Net::StdTcpClient::SetBlocking ( bool b)
inline

enable/disable blocking behaviour

◆ SetServerAddress()

void Net::StdTcpClient::SetServerAddress ( const IpAddress & addr)
inline

set the server address to connect to

Member Data Documentation

◆ blocking

bool Net::StdTcpClient::blocking
protected

◆ inConnectionState

bool Net::StdTcpClient::inConnectionState
protected

◆ recvStream

Ptr<IO::Stream> Net::StdTcpClient::recvStream
protected

◆ sendStream

Ptr<IO::Stream> Net::StdTcpClient::sendStream
protected

◆ serverAddr

IpAddress Net::StdTcpClient::serverAddr
protected

◆ socket

Ptr<Socket> Net::StdTcpClient::socket
protected

The documentation for this class was generated from the following files: