Version: 3.3.0
wxSocketClient Class Reference

#include <wx/socket.h>

+ Inheritance diagram for wxSocketClient:

Detailed Description

Todo:
describe me.

Library:  wxNet
Category:  Networking

Public Member Functions

 wxSocketClient (wxSocketFlags flags=wxSOCKET_NONE)
 Constructor. More...
 
virtual ~wxSocketClient ()
 Destructor. More...
 
virtual bool Connect (const wxSockAddress &address, bool wait=true)
 Connects to a server using the specified address. More...
 
bool Connect (const wxSockAddress &address, const wxSockAddress &local, bool wait=true)
 Connects to a server using the specified address. More...
 
bool WaitOnConnect (long seconds=-1, long milliseconds=0)
 Wait until a connection request completes, or until the specified timeout elapses. More...
 
- Public Member Functions inherited from wxSocketBase
bool Error () const
 Returns true if an error occurred in the last IO operation. More...
 
virtual bool GetLocal (wxSockAddress &addr) const
 Return the local address of the socket. More...
 
virtual bool GetPeer (wxSockAddress &addr) const
 Return the peer address field of the socket. More...
 
long GetTimeout () const
 Return the socket timeout in seconds. More...
 
bool IsConnected () const
 Returns true if the socket is connected. More...
 
bool IsData ()
 Check if the socket can be currently read or written. More...
 
bool IsDisconnected () const
 Returns true if the socket is not connected. More...
 
bool IsOk () const
 Returns true if the socket is initialized and ready and false in other cases. More...
 
wxUint32 LastCount () const
 Returns the number of bytes read or written by the last IO call. More...
 
wxUint32 LastReadCount () const
 Returns the number of bytes read by the last Read() or ReadMsg() call (receive direction only). More...
 
wxUint32 LastWriteCount () const
 Returns the number of bytes written by the last Write() or WriteMsg() call (transmit direction only). More...
 
wxSocketError LastError () const
 Returns the last wxSocket error. More...
 
void RestoreState ()
 Restore the previous state of the socket, as saved with SaveState(). More...
 
void SaveState ()
 Save the current state of the socket in a stack. More...
 
virtual bool Close ()
 Shut down the socket, disabling further transmission and reception of data and disable events for the socket and frees the associated system resources. More...
 
void ShutdownOutput ()
 Shuts down the writing end of the socket. More...
 
wxSocketBaseDiscard ()
 Delete all bytes in the incoming queue. More...
 
wxSocketFlags GetFlags () const
 Returns current IO flags, as set with SetFlags() More...
 
void InterruptWait ()
 Use this function to interrupt any wait operation currently in progress. More...
 
wxSocketBasePeek (void *buffer, wxUint32 nbytes)
 Peek into the socket by copying the next bytes which would be read by Read() into the provided buffer. More...
 
wxSocketBaseRead (void *buffer, wxUint32 nbytes)
 Read up to the given number of bytes from the socket. More...
 
wxSocketBaseReadMsg (void *buffer, wxUint32 nbytes)
 Receive a message sent by WriteMsg(). More...
 
void SetFlags (wxSocketFlags flags)
 Use SetFlags to customize IO operation for this socket. More...
 
virtual bool SetLocal (const wxIPV4address &local)
 Set the local address and port to use. More...
 
void SetTimeout (long seconds)
 Set the default socket timeout in seconds. More...
 
wxSocketBaseUnread (const void *buffer, wxUint32 nbytes)
 Put the specified data into the input queue. More...
 
bool Wait (long seconds=-1, long millisecond=0)
 Wait for any socket event. More...
 
bool WaitForLost (long seconds=-1, long millisecond=0)
 Wait until the connection is lost. More...
 
bool WaitForRead (long seconds=-1, long millisecond=0)
 Wait until the socket is readable. More...
 
bool WaitForWrite (long seconds=-1, long millisecond=0)
 Wait until the socket becomes writable. More...
 
wxSocketBaseWrite (const void *buffer, wxUint32 nbytes)
 Write up to the given number of bytes to the socket. More...
 
wxSocketBaseWriteMsg (const void *buffer, wxUint32 nbytes)
 Sends a buffer which can be read using ReadMsg(). More...
 
void * GetClientData () const
 Returns a pointer of the client data for this socket, as set with SetClientData() More...
 
void Notify (bool notify)
 According to the notify value, this function enables or disables socket events. More...
 
void SetClientData (void *data)
 Sets user-supplied client data for this socket. More...
 
void SetEventHandler (wxEvtHandler &handler, int id=-1)
 Sets an event handler to be called when a socket event occurs. More...
 
void SetNotify (wxSocketEventFlags flags)
 Specifies which socket events are to be sent to the event handler. More...
 
wxSOCKET_T GetSocket () const
 Returns the native socket descriptor. More...
 
 wxSocketBase ()
 Default constructor. More...
 
virtual ~wxSocketBase ()
 Destructor. More...
 
bool Destroy ()
 Destroys the socket safely. More...
 
- Public Member Functions inherited from wxObject
 wxObject ()
 Default ctor; initializes to nullptr the internal reference data. More...
 
 wxObject (const wxObject &other)
 Copy ctor. More...
 
virtual ~wxObject ()
 Destructor. More...
 
virtual wxClassInfoGetClassInfo () const
 This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). More...
 
wxObjectRefDataGetRefData () const
 Returns the wxObject::m_refData pointer, i.e. the data referenced by this object. More...
 
bool IsKindOf (const wxClassInfo *info) const
 Determines whether this class is a subclass of (or the same class as) the given class. More...
 
bool IsSameAs (const wxObject &obj) const
 Returns true if this object has the same data pointer as obj. More...
 
void Ref (const wxObject &clone)
 Makes this object refer to the data in clone. More...
 
void SetRefData (wxObjectRefData *data)
 Sets the wxObject::m_refData pointer. More...
 
void UnRef ()
 Decrements the reference count in the associated data, and if it is zero, deletes the data. More...
 
void UnShare ()
 This is the same of AllocExclusive() but this method is public. More...
 
void operator delete (void *buf)
 The delete operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 
void * operator new (size_t size, const wxString &filename=nullptr, int lineNum=0)
 The new operator is defined for debugging versions of the library only, when the identifier __WXDEBUG__ is defined. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from wxSocketBase
static bool Initialize ()
 Perform the initialization needed in order to use the sockets. More...
 
static void Shutdown ()
 Shut down the sockets. More...
 
- Protected Member Functions inherited from wxObject
void AllocExclusive ()
 Ensure that this object's data is not shared with any other object. More...
 
virtual wxObjectRefDataCreateRefData () const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More...
 
virtual wxObjectRefDataCloneRefData (const wxObjectRefData *data) const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data. More...
 
- Protected Attributes inherited from wxObject
wxObjectRefDatam_refData
 Pointer to an object which is the object's reference-counted data. More...
 

Constructor & Destructor Documentation

◆ wxSocketClient()

wxSocketClient::wxSocketClient ( wxSocketFlags  flags = wxSOCKET_NONE)

Constructor.

Notice that if the object is created from a worker thread or if it is created from the main thread but the event loop is not running, flags parameter must include wxSOCKET_BLOCK as non-blocking sockets require dispatching events, which can only be done in the main thread.

Parameters
flagsSocket flags (See wxSocketBase::SetFlags())

◆ ~wxSocketClient()

virtual wxSocketClient::~wxSocketClient ( )
virtual

Destructor.

Please see wxSocketBase::Destroy().

Member Function Documentation

◆ Connect() [1/2]

virtual bool wxSocketClient::Connect ( const wxSockAddress address,
bool  wait = true 
)
virtual

Connects to a server using the specified address.

If wait is true, Connect() will wait until the connection completes.

Warning
This method will block the GUI.

If wait is false, Connect() will try to establish the connection and return immediately, without blocking the GUI. When used this way, even if Connect() returns false, the connection request can be completed later. To detect this, use WaitOnConnect(), or catch wxSOCKET_CONNECTION events (for successful establishment) and wxSOCKET_LOST events (for connection failure).

Parameters
addressAddress of the server.
waitIf true, waits for the connection to complete.
Returns
true if the connection is established and no error occurs. If wait was true, and Connect() returns false, an error occurred and the connection failed. If wait was false, and Connect() returns false, you should still be prepared to handle the completion of this connection request, either with WaitOnConnect() or by watching wxSOCKET_CONNECTION and wxSOCKET_LOST events.
See also
WaitOnConnect(), wxSocketBase::SetNotify(), wxSocketBase::Notify()

Reimplemented in wxHTTP.

◆ Connect() [2/2]

bool wxSocketClient::Connect ( const wxSockAddress address,
const wxSockAddress local,
bool  wait = true 
)

Connects to a server using the specified address.

If wait is true, Connect() will wait until the connection completes. Warning: This will block the GUI.

If wait is false, Connect() will try to establish the connection and return immediately, without blocking the GUI. When used this way, even if Connect() returns false, the connection request can be completed later. To detect this, use WaitOnConnect(), or catch wxSOCKET_CONNECTION events (for successful establishment) and wxSOCKET_LOST events (for connection failure).

Parameters
addressAddress of the server.
localBind to the specified local address and port before connecting. The local address and port can also be set using SetLocal(), and then using the 2-parameter Connect() method.
waitIf true, waits for the connection to complete.
Returns
true if the connection is established and no error occurs. If wait was true, and Connect() returns false, an error occurred and the connection failed. If wait was false, and Connect() returns false, you should still be prepared to handle the completion of this connection request, either with WaitOnConnect() or by watching wxSOCKET_CONNECTION and wxSOCKET_LOST events.
See also
WaitOnConnect(), wxSocketBase::SetNotify(), wxSocketBase::Notify()

◆ WaitOnConnect()

bool wxSocketClient::WaitOnConnect ( long  seconds = -1,
long  milliseconds = 0 
)

Wait until a connection request completes, or until the specified timeout elapses.

Use this function after issuing a call to Connect() with wait set to false.

Parameters
secondsNumber of seconds to wait. If -1, it will wait for the default timeout, as set with wxSocketBase::SetTimeout().
millisecondsNumber of milliseconds to wait.
Returns
WaitOnConnect() returns true if the connection request completes. This does not necessarily mean that the connection was successfully established; it might also happen that the connection was refused by the peer. Use wxSocketBase::IsConnected() to distinguish between these two situations.

If the timeout elapses, WaitOnConnect() returns false.

These semantics allow code like this:
// Issue the connection request
client->Connect(addr, false);
// Wait until the request completes or until we decide to give up
bool waitmore = true;
while ( !client->WaitOnConnect(seconds, millis) && waitmore )
{
// possibly give some feedback to the user,
// and update waitmore as needed.
}
bool success = client->IsConnected();