wxSocketClient

Derived from

wxSocketBase

Include files

<wx/socket.h>



wxSocketClient::wxSocketClient



wxSocketClient(wxSocketFlags flags = wxSOCKET_NONE)

Constructor.

Parameters

flags
Socket flags (See wxSocketBase::SetFlags)



wxSocketClient::~wxSocketClient



~wxSocketClient(void)

Destructor. Please see wxSocketBase::Destroy.



wxSocketClient::Connect



bool Connect(wxSockAddress& address, 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

address
Address of the server.

wait
If true, waits for the connection to complete.

Return value

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

wxSocketClient::WaitOnConnect, wxSocketBase::SetNotify, wxSocketBase::Notify



wxSocketClient::WaitOnConnect



bool 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

seconds
Number of seconds to wait. If -1, it will wait for the default timeout, as set with SetTimeout.

millisecond
Number of milliseconds to wait.

Return value

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 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();

See also

wxSocketClient::Connect, wxSocketBase::InterruptWait, wxSocketBase::IsConnected

ymasuda 平成17年11月19日