2000-02-10 00:01:21 -05:00
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
%% Name: socket.tex
|
|
|
|
%% Purpose: wxSocket docs
|
|
|
|
%% Author: Guillermo Rodriguez Garcia <guille@iies.es>
|
|
|
|
%% Modified by:
|
|
|
|
%% Created: 1999
|
|
|
|
%% RCS-ID: $Id$
|
|
|
|
%% Copyright: (c) wxWindows team
|
|
|
|
%% Licence: wxWindows licence
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\section{\class{wxSocketBase}}\label{wxsocketbase}
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
wxSocketBase is the base class for all socket-related objects, and it
|
|
|
|
defines all basic IO functionality.
|
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\wxheading{Derived from}
|
|
|
|
|
|
|
|
\helpref{wxEvtHandler}{wxevthandler}
|
|
|
|
|
1999-02-15 15:41:29 -05:00
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/socket.h>
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\wxheading{wxSocket errors}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
|
|
|
\twocolwidtha{7cm}
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
|
|
|
\twocolitem{{\bf wxSOCKET\_NOERROR}}{No error happened.}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_INVOP}}{Invalid operation.}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_IOERR}}{Input/Output error.}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_INVADDR}}{Invalid address passed to wxSocket.}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_INVSOCK}}{Invalid socket (uninitialized).}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_NOHOST}}{No corresponding host.}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_INVPORT}}{Invalid port.}
|
1999-11-01 19:44:10 -05:00
|
|
|
\twocolitem{{\bf wxSOCKET\_WOULDBLOCK}}{The socket is non-blocking and the operation would block.}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_TIMEDOUT}}{The timeout for this operation expired.}
|
1999-09-05 06:23:22 -04:00
|
|
|
\twocolitem{{\bf wxSOCKET\_MEMERR}}{Memory exhausted.}
|
2000-01-19 14:32:07 -05:00
|
|
|
\end{twocollist}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
1999-09-05 15:42:03 -04:00
|
|
|
\wxheading{wxSocket events}
|
1999-07-24 05:05:25 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\twocolwidtha{7cm}
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
2000-01-19 14:32:07 -05:00
|
|
|
\twocolitem{{\bf wxSOCKET\_INPUT}}{There is data available for reading.}
|
1999-09-05 06:23:22 -04:00
|
|
|
\twocolitem{{\bf wxSOCKET\_OUTPUT}}{The socket is ready to be written to.}
|
2000-01-19 14:32:07 -05:00
|
|
|
\twocolitem{{\bf wxSOCKET\_CONNECTION}}{Incoming connection (server), or connection establishment (client).}
|
1999-11-01 19:44:10 -05:00
|
|
|
\twocolitem{{\bf wxSOCKET\_LOST}}{The connection has been closed.}
|
2000-01-19 14:32:07 -05:00
|
|
|
\end{twocollist}
|
1999-07-24 05:05:25 -04:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
A brief note on how to use these events:
|
|
|
|
|
2000-01-19 14:32:07 -05:00
|
|
|
The {\bf wxSOCKET\_INPUT} event will be issued whenever there is data
|
|
|
|
available for reading. This will be the case if the input queue was
|
|
|
|
empty and new data arrives, or if the application has read some data
|
|
|
|
yet there is still more data available. This means that the application
|
|
|
|
does not need to read all available data in response to a
|
|
|
|
{\bf wxSOCKET\_INPUT} event, as more events will be produced as
|
|
|
|
necessary.
|
|
|
|
|
|
|
|
The {\bf wxSOCKET\_OUTPUT} event is issued when a socket is first
|
2000-02-10 00:01:21 -05:00
|
|
|
connected with \helpref{Connect}{wxsocketclientconnect} or accepted
|
|
|
|
with \helpref{Accept}{wxsocketserveraccept}. After that, new
|
2000-01-19 14:32:07 -05:00
|
|
|
events will be generated only after an output operation fails
|
|
|
|
with {\bf wxSOCKET\_WOULDBLOCK} and buffer space becomes available
|
|
|
|
again. This means that the application should assume that it
|
|
|
|
can write data to the socket until an {\bf wxSOCKET\_WOULDBLOCK}
|
|
|
|
error occurs; after this, whenever the socket becomes writable
|
|
|
|
again the application will be notified with another
|
|
|
|
{\bf wxSOCKET\_OUTPUT} event.
|
|
|
|
|
|
|
|
The {\bf wxSOCKET\_CONNECTION} event is issued when a delayed connection
|
|
|
|
request completes succesfully (client) or when a new connection arrives
|
|
|
|
at the incoming queue (server).
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
The {\bf wxSOCKET\_LOST} event is issued when a close indication is
|
|
|
|
received for the socket. This means that the connection broke down or
|
2000-01-19 14:32:07 -05:00
|
|
|
that it was closed by the peer. Also, this event will be issued if
|
|
|
|
a delayed connection request fails.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\wxheading{Event handling}
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
To process events coming from a socket object, use the following event
|
|
|
|
handler macro to direct events to member functions that take a
|
|
|
|
\helpref{wxSocketEvent}{wxsocketevent} argument.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\twocolwidtha{7cm}%
|
1998-09-20 11:45:12 -04:00
|
|
|
\begin{twocollist}\itemsep=0pt
|
2000-02-26 23:59:41 -05:00
|
|
|
\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a wxEVT\_SOCKET event.}
|
2000-01-19 14:32:07 -05:00
|
|
|
\end{twocollist}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketEvent}{wxsocketevent},
|
|
|
|
\helpref{wxSocketClient}{wxsocketclient},
|
2000-02-10 00:01:21 -05:00
|
|
|
\helpref{wxSocketServer}{wxsocketserver},
|
|
|
|
\helpref{Sockets sample}{samplesockets}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
% ---------------------------------------------------------------------------
|
2000-02-26 23:59:41 -05:00
|
|
|
% Function groups
|
1998-09-20 11:45:12 -04:00
|
|
|
% ---------------------------------------------------------------------------
|
2000-02-10 00:01:21 -05:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\latexignore{\rtfignore{\wxheading{Function groups}}}
|
|
|
|
|
|
|
|
\membersection{Construction and destruction}
|
|
|
|
|
|
|
|
\helpref{wxSocketBase}{wxsocketbaseconstruct}\\
|
2000-03-06 12:11:10 -05:00
|
|
|
\helpref{\destruct{wxSocketBase}}{wxsocketbasedestruct}\\
|
|
|
|
\helpref{wxDestroy}{wxsocketbasedestroy}
|
2000-02-26 23:59:41 -05:00
|
|
|
|
|
|
|
\membersection{Socket state}
|
|
|
|
|
|
|
|
Functions to retrieve current state and miscellaneous info.
|
|
|
|
|
|
|
|
\helpref{Error}{wxsocketbaseerror}\\
|
|
|
|
\helpref{GetLocal}{wxsocketbasegetlocal}\\
|
|
|
|
\helpref{GetPeer}{wxsocketbasegetpeer}
|
|
|
|
\helpref{IsConnected}{wxsocketbaseisconnected}\\
|
|
|
|
\helpref{IsData}{wxsocketbaseisdata}\\
|
|
|
|
\helpref{IsDisconnected}{wxsocketbaseisdisconnected}\\
|
|
|
|
\helpref{LastCount}{wxsocketbaselastcount}\\
|
|
|
|
\helpref{LastError}{wxsocketbaselasterror}\\
|
|
|
|
\helpref{Ok}{wxsocketbaseok}\\
|
|
|
|
\helpref{SaveState}{wxsocketbasesavestate}\\
|
|
|
|
\helpref{RestoreState}{wxsocketbaserestorestate}
|
|
|
|
|
|
|
|
\membersection{Basic IO}
|
|
|
|
|
|
|
|
Functions that perform basic IO functionality.
|
|
|
|
|
|
|
|
\helpref{Close}{wxsocketbaseclose}\\
|
|
|
|
\helpref{Discard}{wxsocketbasediscard}\\
|
|
|
|
\helpref{Peek}{wxsocketbasepeek}\\
|
|
|
|
\helpref{Read}{wxsocketbaseread}\\
|
|
|
|
\helpref{ReadMsg}{wxsocketbasereadmsg}\\
|
|
|
|
\helpref{Unread}{wxsocketbaseunread}\\
|
|
|
|
\helpref{Write}{wxsocketbasewrite}\\
|
|
|
|
\helpref{WriteMsg}{wxsocketbasewritemsg}
|
|
|
|
|
|
|
|
Functions that perform a timed wait on a certain IO condition.
|
|
|
|
|
|
|
|
\helpref{Wait}{wxsocketbasewait}\\
|
|
|
|
\helpref{WaitForRead}{wxsocketbasewaitforread}\\
|
|
|
|
\helpref{WaitForWrite}{wxsocketbasewaitforwrite}\\
|
|
|
|
\helpref{WaitForLost}{wxsocketbasewaitforlost}
|
|
|
|
|
|
|
|
Functions that allow applications to customize socket IO as needed.
|
|
|
|
|
|
|
|
\helpref{SetFlags}{wxsocketbasesetflags}\\
|
|
|
|
\helpref{SetTimeout}{wxsocketbasesettimeout}
|
|
|
|
|
|
|
|
\membersection{Handling socket events}
|
|
|
|
|
|
|
|
Functions that allow applications to receive socket events.
|
|
|
|
|
|
|
|
\helpref{Notify}{wxsocketbasenotify}\\
|
|
|
|
\helpref{SetNotify}{wxsocketbasesetnotify}\\
|
|
|
|
\helpref{SetEventHandler}{wxsocketbaseseteventhandler}
|
|
|
|
|
|
|
|
Callback functions are also available, but they are provided for backwards
|
|
|
|
compatibility only. Their use is discouraged in favour of events, and should
|
|
|
|
be considered deprecated.
|
|
|
|
|
|
|
|
\helpref{Callback}{wxsocketbasecallback}\\
|
|
|
|
\helpref{CallbackData}{wxsocketbasecallbackdata}
|
|
|
|
|
|
|
|
|
|
|
|
% ---------------------------------------------------------------------------
|
|
|
|
% Members here
|
|
|
|
% ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
\helponly{\insertatlevel{2}{
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\wxheading{Members}
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
\membersection{wxSocketBase::wxSocketBase}\label{wxsocketbaseconstruct}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\func{}{wxSocketBase}{\void}
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
Default constructor. Don't use it directly; instead, use
|
|
|
|
\helpref{wxSocketClient}{wxsocketclient} to construct a socket client, or
|
|
|
|
\helpref{wxSocketServer}{wxsocketserver} to construct a socket server.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\membersection{wxSocketBase::\destruct{wxSocketBase}}\label{wxsocketbasedestruct}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\func{}{\destruct{wxSocketBase}}{\void}
|
|
|
|
|
2000-03-06 12:11:10 -05:00
|
|
|
Destructor. Do not destroy a socket using the delete operator directly;
|
2000-03-06 13:14:32 -05:00
|
|
|
use \helpref{Destroy}{wxsocketbasedestroy} instead. Also, do not create socket
|
2000-03-06 12:11:10 -05:00
|
|
|
objects in the stack.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
%
|
|
|
|
% Callback
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Callback}\label{wxsocketbasecallback}
|
|
|
|
|
|
|
|
\func{wxSocketBase::wxSockCbk}{Callback}{\param{wxSocketBase::wxSockCbk}{ callback}}
|
|
|
|
|
|
|
|
You can setup a callback function to be called when an event occurs.
|
|
|
|
The function will be called only for those events for which notification
|
|
|
|
has been enabled with \helpref{Notify}{wxsocketbasenotify} and
|
|
|
|
\helpref{SetNotify}{wxsocketbasesetnotify}. The prototype of the
|
|
|
|
callback must be as follows:
|
|
|
|
|
|
|
|
\begin{verbatim}
|
|
|
|
void SocketCallback(wxSocketBase& sock, wxSocketNotify evt, char *cdata);
|
|
|
|
\end{verbatim}
|
|
|
|
|
|
|
|
The first parameter is a reference to the socket object in which the
|
|
|
|
event occured. The second parameter tells you which event occured.
|
|
|
|
(See \helpref{wxSocket events}{wxsocketbase}). The third parameter
|
|
|
|
is the user data you specified using
|
|
|
|
\helpref{CallbackData}{wxsocketbasecallbackdata}.
|
|
|
|
|
|
|
|
Note that events are preferred over callbacks where possible.
|
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
|
|
|
A pointer to the previous callback.
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{wxSocketBase::CallbackData}{wxsocketbasecallbackdata},
|
|
|
|
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
|
|
|
|
\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1999-07-24 05:05:25 -04:00
|
|
|
%
|
2000-02-26 23:59:41 -05:00
|
|
|
% CallbackData
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::CallbackData}\label{wxsocketbasecallbackdata}
|
|
|
|
|
|
|
|
\func{char *}{CallbackData}{\param{char *}{cdata}}
|
|
|
|
|
|
|
|
This function sets the the user data which will be passed to a
|
|
|
|
callback function set via \helpref{Callback}{wxsocketbasecallback}.
|
|
|
|
|
|
|
|
Note that events are preferred over callbacks where possible.
|
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
|
|
|
A pointer to the previous user data.
|
|
|
|
|
|
|
|
\helpref{wxSocketBase::Callback}{wxsocketbasecallback},
|
|
|
|
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
|
|
|
|
\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
|
|
|
|
|
|
|
|
%
|
|
|
|
% Close
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Close}\label{wxsocketbaseclose}
|
|
|
|
|
|
|
|
\func{void}{Close}{\void}
|
|
|
|
|
|
|
|
This function shuts down the socket, disabling further transmission and
|
|
|
|
reception of data; it also disables events for the socket and frees the
|
2000-03-06 12:11:10 -05:00
|
|
|
associated system resources. If you \helpref{Destroy}{wxsocketbasedestroy}
|
|
|
|
a socket, Close is automatically called.
|
2000-02-26 23:59:41 -05:00
|
|
|
|
|
|
|
\wxheading{Remark/Warning}
|
|
|
|
|
|
|
|
Although Close immediately disables events for the socket, it is possible
|
|
|
|
that event messages may be waiting in the application's event queue. The
|
|
|
|
application must therefore be prepared to handle socket event messages
|
|
|
|
even after calling Close.
|
|
|
|
|
2000-03-06 12:11:10 -05:00
|
|
|
%
|
2000-03-06 12:14:16 -05:00
|
|
|
% Destroy
|
2000-03-06 12:11:10 -05:00
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Destroy}\label{wxsocketbasedestroy}
|
|
|
|
|
2000-03-06 12:14:16 -05:00
|
|
|
\func{bool}{Destroy}{\void}
|
2000-03-06 12:11:10 -05:00
|
|
|
|
|
|
|
Destroys the socket safely. Use this function instead of the delete operator,
|
|
|
|
since otherwise socket events could reach the application even after the
|
|
|
|
socket has been destroyed. To prevent this problem, this function appends
|
|
|
|
the wxSocket to a list of object to be deleted on idle time, after all
|
|
|
|
events have been processed. For the same reason, you should avoid creating
|
|
|
|
socket objects in the stack.
|
|
|
|
|
|
|
|
Destroy calls \helpref{Close}{wxsocketbaseclose} automatically.
|
|
|
|
|
2000-03-06 12:14:16 -05:00
|
|
|
\wxheading{Return value}
|
|
|
|
|
|
|
|
Always TRUE.
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
%
|
|
|
|
% Discard
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Discard}\label{wxsocketbasediscard}
|
|
|
|
|
|
|
|
\func{wxSocketBase\&}{Discard}{\void}
|
|
|
|
|
|
|
|
This function simply deletes all bytes in the incoming queue. This function
|
|
|
|
always returns immediately and its operation is not affected by IO flags.
|
|
|
|
|
|
|
|
Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually discarded.
|
|
|
|
|
|
|
|
If you use \helpref{Error}{wxsocketbaseerror}, it will always return FALSE.
|
|
|
|
|
|
|
|
%
|
|
|
|
% Error
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Error}\label{wxsocketbaseerror}
|
|
|
|
|
|
|
|
\constfunc{bool}{Error}{\void}
|
|
|
|
|
|
|
|
Returns TRUE if an error occured in the last IO operation.
|
|
|
|
|
|
|
|
Use this function to check for an error condition after one of the
|
|
|
|
following calls: Discard, Peek, Read, ReadMsg, Unread, Write, WriteMsg.
|
|
|
|
|
|
|
|
%
|
|
|
|
% GetLocal
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::GetLocal}\label{wxsocketbasegetlocal}
|
|
|
|
|
|
|
|
\constfunc{bool}{GetLocal}{\param{wxSockAddress\& }{addr\_man}}
|
|
|
|
|
|
|
|
This function returns the local address field of the socket. The local
|
|
|
|
address field contains the complete local address of the socket (local
|
|
|
|
address, local port, ...).
|
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
|
|
|
It returns TRUE if no errors happened, FALSE otherwise.
|
|
|
|
|
1999-07-24 05:05:25 -04:00
|
|
|
%
|
2000-02-26 23:59:41 -05:00
|
|
|
% GetPeer
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::GetPeer}\label{wxsocketbasegetpeer}
|
1999-07-24 05:05:25 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\constfunc{bool}{GetPeer}{\param{wxSockAddress\& }{addr\_man}}
|
|
|
|
|
|
|
|
This function returns the peer address field of the socket. The peer
|
|
|
|
address field contains the complete peer host address of the socket
|
|
|
|
(address, port, ...).
|
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
|
|
|
It returns TRUE if no errors happened, FALSE otherwise.
|
|
|
|
|
|
|
|
%
|
|
|
|
% IsConnected
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::IsConnected}\label{wxsocketbaseisconnected}
|
|
|
|
|
|
|
|
\constfunc{bool}{IsConnected}{\void}
|
|
|
|
|
|
|
|
Returns TRUE if the socket is connected.
|
|
|
|
|
|
|
|
%
|
|
|
|
% IsData
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::IsData}\label{wxsocketbaseisdata}
|
|
|
|
|
|
|
|
\constfunc{bool}{IsData}{\void}
|
|
|
|
|
2000-03-03 21:41:14 -05:00
|
|
|
This function waits until the socket is readable. This might mean that
|
2000-02-26 23:59:41 -05:00
|
|
|
queued data is available for reading or, for streamed sockets, that
|
2000-03-03 21:41:14 -05:00
|
|
|
the connection has been closed, so that a read operation will complete
|
|
|
|
immediately without blocking (unless the {\bf wxSOCKET\_WAITALL} flag
|
|
|
|
is set, in which case the operation might still block).
|
2000-02-26 23:59:41 -05:00
|
|
|
|
|
|
|
\membersection{wxSocketBase::IsDisconnected}\label{wxsocketbaseisdisconnected}
|
|
|
|
|
|
|
|
%
|
|
|
|
% IsDisconnected
|
|
|
|
%
|
|
|
|
\constfunc{bool}{IsDisconnected}{\void}
|
|
|
|
|
|
|
|
Returns TRUE if the socket is not connected.
|
|
|
|
|
|
|
|
\membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount}
|
|
|
|
|
|
|
|
%
|
|
|
|
% LastCount
|
|
|
|
%
|
|
|
|
\constfunc{wxUint32}{LastCount}{\void}
|
|
|
|
|
|
|
|
Returns the number of bytes read or written by the last IO call.
|
|
|
|
|
|
|
|
Use this function to get the number of bytes actually transferred
|
|
|
|
after using one of the following IO calls: Discard, Peek, Read,
|
|
|
|
ReadMsg, Unread, Write, WriteMsg.
|
|
|
|
|
|
|
|
%
|
|
|
|
% LastError
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror}
|
|
|
|
|
|
|
|
\constfunc{wxSocketError}{LastError}{\void}
|
|
|
|
|
|
|
|
Returns the last wxSocket error. See \helpref{wxSocket errors}{wxsocketbase}.
|
|
|
|
|
|
|
|
Please note that this function merely returns the last error code,
|
|
|
|
but it should not be used to determine if an error has occured (this
|
|
|
|
is because successful operations do not change the LastError value).
|
|
|
|
Use \helpref{Error}{wxsocketbaseerror} first, in order to determine
|
|
|
|
if the last IO call failed. If this returns TRUE, use LastError
|
|
|
|
to discover the cause of the error.
|
|
|
|
|
|
|
|
%
|
|
|
|
% Notify
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Notify}\label{wxsocketbasenotify}
|
|
|
|
|
|
|
|
\func{void}{Notify}{\param{bool}{ notify}}
|
|
|
|
|
|
|
|
According to the {\it notify} value, this function enables
|
|
|
|
or disables socket events. If {\it notify} is TRUE, the events
|
|
|
|
configured with \helpref{SetNotify}{wxsocketbasesetnotify} will
|
|
|
|
be sent to the application. If {\it notify} is FALSE; no events
|
|
|
|
will be sent.
|
|
|
|
|
|
|
|
%
|
|
|
|
% Ok
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Ok}\label{wxsocketbaseok}
|
|
|
|
|
|
|
|
\constfunc{bool}{Ok}{\void}
|
|
|
|
|
|
|
|
Returns TRUE if the socket is initialized and ready and FALSE in other
|
|
|
|
cases.
|
|
|
|
|
2000-03-06 12:11:10 -05:00
|
|
|
\wxheading{Remark/Warning}
|
|
|
|
|
|
|
|
For \helpref{wxSocketClient}{wxsocketclient}, Ok won't return TRUE unless
|
|
|
|
the client is connected to a server.
|
|
|
|
|
|
|
|
For \helpref{wxSocketServer}{wxsocketserver}, Ok will return TRUE if the
|
|
|
|
server could bind to the specified address and is already listening for
|
|
|
|
new connections.
|
|
|
|
|
|
|
|
Ok does not check for IO errors; use \helpref{Error}{wxsocketbaseerror}
|
|
|
|
instead for that purpose.
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
%
|
|
|
|
% RestoreState
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::RestoreState}\label{wxsocketbaserestorestate}
|
|
|
|
|
|
|
|
\func{void}{RestoreState}{\void}
|
|
|
|
|
|
|
|
This function restores the previous state of the socket, as saved
|
|
|
|
with \helpref{SaveState}{wxsocketbasesavestate}
|
|
|
|
|
|
|
|
Calls to SaveState and RestoreState can be nested.
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{wxSocketBase::SaveState}{wxsocketbasesavestate}
|
|
|
|
|
|
|
|
%
|
|
|
|
% SaveState
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::SaveState}\label{wxsocketbasesavestate}
|
|
|
|
|
|
|
|
\func{void}{SaveState}{\void}
|
|
|
|
|
|
|
|
This function saves the current state of the socket in a stack. Socket
|
|
|
|
state includes flags, as set with \helpref{SetFlags}{wxsocketbasesetflags},
|
|
|
|
event mask, as set with \helpref{SetNotify}{wxsocketbasesetnotify} and
|
|
|
|
\helpref{Notify}{wxsocketbasenotify}, and current settings for the
|
|
|
|
asynchronous callbacks, as set with \helpref{Callback}{wxsocketbasecallback}
|
|
|
|
and \helpref{CallbackData}{wxsocketbasecallbackdata}.
|
|
|
|
|
|
|
|
Calls to SaveState and RestoreState can be nested.
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate}
|
|
|
|
|
|
|
|
%
|
|
|
|
% SetEventHandler
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::SetEventHandler}\label{wxsocketbaseseteventhandler}
|
|
|
|
|
|
|
|
\func{void}{SetEventHandler}{\param{wxEvtHandler\&}{ evt\_hdlr}, \param{int}{ id = -1}}
|
|
|
|
|
|
|
|
Sets an event handler to be called when a socket event occurs. The
|
|
|
|
handler will be called for those events for which notification is
|
|
|
|
enabled with \helpref{SetNotify}{wxsocketbasesetnotify} and
|
|
|
|
\helpref{Notify}{wxsocketbasenotify}.
|
|
|
|
|
|
|
|
You can also specify a callback function to be called when an event
|
|
|
|
occurs, although if possible, events should be used instead of callbacks.
|
|
|
|
See \helpref{Callback}{wxsocketbasecallback} and
|
|
|
|
\helpref{CallbackData}{wxsocketbasecallbackdata}.
|
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
|
|
|
\docparam{evt\_hdlr}{Specifies the event handler you want to use.}
|
|
|
|
|
|
|
|
\docparam{id}{The id of socket event.}
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
|
|
|
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
|
|
|
|
\helpref{wxSocketBase::Notify}{wxsocketbasenotify},
|
|
|
|
\helpref{wxSocketEvent}{wxsocketevent},
|
|
|
|
\helpref{wxEvtHandler}{wxevthandler},
|
|
|
|
\helpref{wxSocketBase::Callback}{wxsocketbasecallback},
|
|
|
|
\helpref{wxSocketBase::CallbackData}{wxsocketbasecallbackdata}
|
|
|
|
|
|
|
|
%
|
|
|
|
% SetFlags
|
|
|
|
%
|
1999-07-24 05:05:25 -04:00
|
|
|
\membersection{wxSocketBase::SetFlags}\label{wxsocketbasesetflags}
|
|
|
|
|
|
|
|
\func{void}{SetFlags}{\param{wxSocketBase::wxSockFlags}{ flags}}
|
|
|
|
|
|
|
|
\twocolwidtha{7cm}
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
2000-01-19 14:32:07 -05:00
|
|
|
\twocolitem{{\bf wxSOCKET\_NONE}}{Normal functionality.}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_NOWAIT}}{Read/write as much data as possible and return immediately.}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_WAITALL}}{Wait for all required data to be read/written unless an error occurs.}
|
2000-02-10 00:01:21 -05:00
|
|
|
\twocolitem{{\bf wxSOCKET\_BLOCK}}{Block the GUI (do not yield) while reading/writing data.}
|
1999-07-24 05:05:25 -04:00
|
|
|
\end{twocollist}
|
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
A brief overview on how to use these flags follows.
|
|
|
|
|
|
|
|
If no flag is specified (this is the same as {\bf wxSOCKET\_NONE}),
|
|
|
|
IO calls will return after some data has been read or written, even
|
|
|
|
when the transfer might not be complete. This is the same as issuing
|
|
|
|
exactly one blocking low-level call to recv() or send(). Note that
|
2000-02-10 00:01:21 -05:00
|
|
|
{\it blocking} here refers to when the function returns, not to whether
|
1999-11-01 19:44:10 -05:00
|
|
|
the GUI blocks during this time.
|
|
|
|
|
|
|
|
If {\bf wxSOCKET\_NOWAIT} is specified, IO calls will return immediately.
|
|
|
|
Read operations will retrieve only available data. Write operations will
|
|
|
|
write as much data as possible, depending on how much space is available
|
|
|
|
in the output buffer. This is the same as issuing exactly one nonblocking
|
2000-02-10 00:01:21 -05:00
|
|
|
low-level call to recv() or send(). Note that {\it nonblocking} here
|
|
|
|
refers to when the function returns, not to whether the GUI blocks during
|
|
|
|
this time.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
If {\bf wxSOCKET\_WAITALL} is specified, IO calls won't return until ALL
|
|
|
|
the data has been read or written (or until an error occurs), blocking if
|
|
|
|
necessary, and issuing several low level calls if necessary. This is the
|
|
|
|
same as having a loop which makes as many blocking low-level calls to
|
|
|
|
recv() or send() as needed so as to transfer all the data. Note that
|
2000-02-10 00:01:21 -05:00
|
|
|
{\it blocking} here refers to when the function returns, not to whether
|
1999-11-01 19:44:10 -05:00
|
|
|
the GUI blocks during this time.
|
|
|
|
|
2000-01-04 06:54:57 -05:00
|
|
|
The {\bf wxSOCKET\_BLOCK} flag controls whether the GUI blocks during
|
2000-02-10 00:01:21 -05:00
|
|
|
IO operations. If this flag is specified, the socket will not yield
|
|
|
|
during IO calls, so the GUI will remain blocked until the operation
|
|
|
|
completes. If it is not used, then the application must take extra
|
|
|
|
care to avoid unwanted reentrance.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
So:
|
|
|
|
|
2000-01-19 14:32:07 -05:00
|
|
|
{\bf wxSOCKET\_NONE} will try to read at least SOME data, no matter how much.
|
1999-11-02 05:02:01 -05:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
{\bf wxSOCKET\_NOWAIT} will always return immediately, even if it cannot
|
|
|
|
read or write ANY data.
|
1999-11-02 05:02:01 -05:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
{\bf wxSOCKET\_WAITALL} will only return when it has read or written ALL
|
|
|
|
the data.
|
1999-11-02 05:02:01 -05:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
{\bf wxSOCKET\_BLOCK} has nothing to do with the previous flags and
|
2000-01-04 06:54:57 -05:00
|
|
|
it controls whether the GUI blocks.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
1999-07-24 05:05:25 -04:00
|
|
|
%
|
|
|
|
% SetNotify
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::SetNotify}\label{wxsocketbasesetnotify}
|
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
\func{void}{SetNotify}{\param{wxSocketEventFlags}{ flags}}
|
1999-07-24 05:05:25 -04:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
SetNotify specifies which socket events are to be sent to the event handler.
|
|
|
|
The {\it flags} parameter is a combination of flags ORed toghether. The
|
|
|
|
following flags can be used:
|
1999-09-05 06:23:22 -04:00
|
|
|
|
|
|
|
\twocolwidtha{7cm}
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
1999-11-01 19:44:10 -05:00
|
|
|
\twocolitem{{\bf wxSOCKET\_INPUT\_FLAG}}{to receive wxSOCKET\_INPUT}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_OUTPUT\_FLAG}}{to receive wxSOCKET\_OUTPUT}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_CONNECTION\_FLAG}}{to receive wxSOCKET\_CONNECTION}
|
|
|
|
\twocolitem{{\bf wxSOCKET\_LOST\_FLAG}}{to receive wxSOCKET\_LOST}
|
2000-01-19 14:32:07 -05:00
|
|
|
\end{twocollist}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
|
|
|
For example:
|
1999-11-02 05:02:01 -05:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\begin{verbatim}
|
1999-11-01 19:44:10 -05:00
|
|
|
sock.SetNotify(wxSOCKET_INPUT_FLAG | wxSOCKET_LOST_FLAG);
|
2000-02-10 00:01:21 -05:00
|
|
|
sock.Notify(TRUE);
|
1999-09-05 06:23:22 -04:00
|
|
|
\end{verbatim}
|
1999-11-02 05:02:01 -05:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
In this example, the user will be notified about incoming socket data and
|
|
|
|
whenever the connection is closed.
|
1999-09-05 06:23:22 -04:00
|
|
|
|
1999-09-05 15:42:03 -04:00
|
|
|
For more information on socket events see \helpref{wxSocket events}{wxsocketbase}.
|
1999-09-05 06:23:22 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% SetTimeout
|
|
|
|
%
|
2000-01-04 06:54:57 -05:00
|
|
|
\membersection{wxSocketBase::SetTimeout}\label{wxsocketbasesettimeout}
|
1999-09-05 15:42:03 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{void}{SetTimeout}{\param{int }{seconds}}
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
This function sets the default socket timeout in seconds. This timeout
|
|
|
|
applies to all IO calls, and also to the \helpref{Wait}{wxsocketbasewait}
|
|
|
|
family of functions if you don't specify a wait interval. Initially, the
|
|
|
|
default is set to 10 minutes.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% Peek
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Peek}\label{wxsocketbasepeek}
|
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{wxUint32}{ nbytes}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-01-19 14:32:07 -05:00
|
|
|
This function peeks a buffer of {\it nbytes} bytes from the socket.
|
|
|
|
Peeking a buffer doesn't delete it from the socket input queue.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually peeked.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\wxheading{Parameters}
|
|
|
|
|
|
|
|
\docparam{buffer}{Buffer where to put peeked data.}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\docparam{nbytes}{Number of bytes.}
|
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\wxheading{Return value}
|
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
Returns a reference to the current object.
|
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
\wxheading{Remark/Warning}
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
The exact behaviour of wxSocketBase::Peek depends on the combination
|
1999-11-01 19:44:10 -05:00
|
|
|
of flags being used. For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}
|
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
|
|
|
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
|
|
|
|
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
1999-11-01 19:44:10 -05:00
|
|
|
\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% Read
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Read}\label{wxsocketbaseread}
|
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{wxUint32}{ nbytes}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
This function reads a buffer of {\it nbytes} bytes from the socket.
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually read.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\wxheading{Parameters}
|
|
|
|
|
|
|
|
\docparam{buffer}{Buffer where to put read data.}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\docparam{nbytes}{Number of bytes.}
|
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\wxheading{Return value}
|
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
Returns a reference to the current object.
|
|
|
|
|
1999-02-12 13:31:00 -05:00
|
|
|
\wxheading{Remark/Warning}
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
The exact behaviour of wxSocketBase::Read depends on the combination
|
1999-11-02 05:02:01 -05:00
|
|
|
of flags being used. For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
|
|
|
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
|
|
|
|
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
1999-11-01 19:44:10 -05:00
|
|
|
\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% ReadMsg
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg}
|
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{wxUint32}{ nbytes}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
This function reads a buffer sent by \helpref{WriteMsg}{wxsocketbasewritemsg}
|
|
|
|
on a socket. If the buffer passed to the function isn't big enough, the
|
|
|
|
remaining bytes will be discarded. This function always waits for the
|
|
|
|
buffer to be entirely filled, unless an error occurs.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually read.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
|
|
|
\docparam{buffer}{Buffer where to put read data.}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
\docparam{nbytes}{Size of the buffer.}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\wxheading{Return value}
|
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
Returns a reference to the current object.
|
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
\wxheading{Remark/Warning}
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
wxSocketBase::ReadMsg will behave as if the {\bf wxSOCKET\_WAITALL} flag
|
2000-01-19 14:32:07 -05:00
|
|
|
was always set and it will always ignore the {\bf wxSOCKET\_NOWAIT} flag.
|
|
|
|
The exact behaviour of ReadMsg depends on the {\bf wxSOCKET\_BLOCK} flag.
|
|
|
|
For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
|
|
|
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
|
|
|
|
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
|
|
|
\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags},
|
1999-02-12 13:31:00 -05:00
|
|
|
\helpref{wxSocketBase::WriteMsg}{wxsocketbasewritemsg}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% Unread
|
|
|
|
%
|
1999-08-24 13:38:55 -04:00
|
|
|
\membersection{wxSocketBase::Unread}\label{wxsocketbaseunread}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{wxSocketBase\&}{Unread}{\param{const char *}{ buffer}, \param{wxUint32}{ nbytes}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
This function unreads a buffer. That is, the data in the buffer is put back
|
|
|
|
in the incoming queue. This function is not affected by wxSocket flags.
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
If you use \helpref{LastCount}{wxsocketbaselastcount}, it will always return {\it nbytes}.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
If you use \helpref{Error}{wxsocketbaseerror}, it will always return FALSE.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
|
|
|
\docparam{buffer}{Buffer to be unread.}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\docparam{nbytes}{Number of bytes.}
|
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\wxheading{Return value}
|
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
Returns a reference to the current object.
|
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
|
|
|
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
1999-02-12 13:31:00 -05:00
|
|
|
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
2000-02-26 23:59:41 -05:00
|
|
|
% Wait
|
1998-09-20 11:45:12 -04:00
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::Wait}\label{wxsocketbasewait}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
This function waits until one of the following conditions is TRUE. Note
|
|
|
|
that it is recommended to use the individual Wait functions to wait for
|
|
|
|
the required condition, instead of this one.
|
|
|
|
|
|
|
|
\begin{itemize}
|
2000-02-26 23:59:41 -05:00
|
|
|
\item The socket becomes readable.
|
2000-02-10 00:01:21 -05:00
|
|
|
\item The socket becomes writable.
|
|
|
|
\item An ongoing connection request has completed (only for clients)
|
|
|
|
\item An incoming connection request has arrived (only for servers)
|
|
|
|
\item The connection has been closed.
|
|
|
|
\end{itemize}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
\docparam{seconds}{Number of seconds to wait.
|
|
|
|
If -1, it will wait for the default timeout,
|
|
|
|
as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\docparam{millisecond}{Number of milliseconds to wait.}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\wxheading{Return value}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Returns TRUE when any of the above conditions is satisfied,
|
|
|
|
FALSE if the timeout was reached.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
|
|
|
|
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
|
1999-02-12 13:31:00 -05:00
|
|
|
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% WaitForRead
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
This function waits until the socket is readable. This might mean that
|
|
|
|
queued data is available for reading or, for streamed sockets, that
|
2000-03-03 21:41:14 -05:00
|
|
|
the connection has been closed, so that a read operation will complete
|
|
|
|
immediately without blocking (unless the {\bf wxSOCKET\_WAITALL} flag
|
|
|
|
is set, in which case the operation might still block).
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
\docparam{seconds}{Number of seconds to wait.
|
|
|
|
If -1, it will wait for the default timeout,
|
|
|
|
as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\docparam{millisecond}{Number of milliseconds to wait.}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\wxheading{Return value}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-03-03 21:41:14 -05:00
|
|
|
Returns TRUE if the socket becomes readable, FALSE on timeout.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::Wait}{wxsocketbasewait},
|
|
|
|
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
|
1999-02-12 13:31:00 -05:00
|
|
|
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% WaitForWrite
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
This function waits until the socket becomes writable. This might mean that
|
|
|
|
the socket is ready to send new data, or for streamed sockets, that the
|
2000-03-03 21:41:14 -05:00
|
|
|
connection has been closed, so that a write operation is guaranteed to
|
|
|
|
complete immediately (unless the {\bf wxSOCKET\_WAITALL} flag is set,
|
|
|
|
in which case the operation might still block).
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
\docparam{seconds}{Number of seconds to wait.
|
|
|
|
If -1, it will wait for the default timeout,
|
|
|
|
as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\docparam{millisecond}{Number of milliseconds to wait.}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\wxheading{Return value}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-03-03 21:41:14 -05:00
|
|
|
Returns TRUE if the socket becomes writable, FALSE on timeout.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::Wait}{wxsocketbasewait},
|
|
|
|
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
|
1999-02-12 13:31:00 -05:00
|
|
|
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% WaitForLost
|
|
|
|
%
|
|
|
|
\membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
This function waits until the connection is lost. This may happen if
|
|
|
|
the peer gracefully closes the connection or if the connection breaks.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
\docparam{seconds}{Number of seconds to wait.
|
|
|
|
If -1, it will wait for the default timeout,
|
|
|
|
as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\docparam{millisecond}{Number of milliseconds to wait.}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\wxheading{Return value}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
Returns TRUE if the connection was lost, FALSE if the timeout was reached.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
|
|
|
|
\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
|
1999-02-12 13:31:00 -05:00
|
|
|
\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
|
|
|
%
|
2000-02-26 23:59:41 -05:00
|
|
|
% Write
|
1998-10-07 07:04:27 -04:00
|
|
|
%
|
2000-02-26 23:59:41 -05:00
|
|
|
\membersection{wxSocketBase::Write}\label{wxsocketbasewrite}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{wxUint32}{ nbytes}}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
This function writes a buffer of {\it nbytes} bytes to the socket.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually written.
|
1998-10-07 07:04:27 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\wxheading{Parameters}
|
1999-11-01 19:44:10 -05:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\docparam{buffer}{Buffer with the data to be sent.}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\docparam{nbytes}{Number of bytes.}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\wxheading{Return value}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
Returns a reference to the current object.
|
1999-09-05 15:42:03 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\wxheading{Remark/Warning}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
The exact behaviour of wxSocketBase::Write depends on the combination
|
|
|
|
of flags being used. For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}.
|
1999-09-05 06:23:22 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\wxheading{See also}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
|
|
|
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
|
|
|
|
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
|
|
|
\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
|
|
|
%
|
2000-02-26 23:59:41 -05:00
|
|
|
% WriteMsg
|
1999-09-05 06:23:22 -04:00
|
|
|
%
|
2000-02-26 23:59:41 -05:00
|
|
|
\membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{wxUint32}{ nbytes}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
This function writes a buffer of {\it nbytes} bytes from the socket, but it
|
|
|
|
writes a short header before so that \helpref{ReadMsg}{wxsocketbasereadmsg}
|
|
|
|
knows how much data should it actually read. So, a buffer sent with WriteMsg
|
|
|
|
{\bf must} be read with ReadMsg. This function always waits for the entire
|
|
|
|
buffer to be sent, unless an error occurs.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually written.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\docparam{buffer}{Buffer with the data to be sent.}
|
2000-02-10 00:01:21 -05:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\docparam{nbytes}{Number of bytes to send.}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
Returns a reference to the current object.
|
1999-09-05 06:23:22 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\wxheading{Remark/Warning}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
wxSocketBase::WriteMsg will behave as if the {\bf wxSOCKET\_WAITALL} flag
|
|
|
|
was always set and it will always ignore the {\bf wxSOCKET\_NOWAIT} flag.
|
|
|
|
The exact behaviour of WriteMsg depends on the {\bf wxSOCKET\_BLOCK} flag.
|
|
|
|
For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}.
|
2000-02-10 00:01:21 -05:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\wxheading{See also}
|
1999-09-05 06:23:22 -04:00
|
|
|
|
2000-02-26 23:59:41 -05:00
|
|
|
\helpref{wxSocketBase::Error}{wxsocketbaseerror},
|
|
|
|
\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
|
|
|
|
\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
|
|
|
|
\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags},
|
|
|
|
\helpref{wxSocketBase::ReadMsg}{wxsocketbasereadmsg}
|
1999-11-01 19:44:10 -05:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
% ---------------------------------------------------------------------------
|
|
|
|
% CLASS wxSocketClient
|
|
|
|
% ---------------------------------------------------------------------------
|
2000-02-26 23:59:41 -05:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\section{\class{wxSocketClient}}\label{wxsocketclient}
|
|
|
|
|
|
|
|
\wxheading{Derived from}
|
|
|
|
|
|
|
|
\helpref{wxSocketBase}{wxsocketbase}
|
|
|
|
|
1999-02-15 15:41:29 -05:00
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/socket.h>
|
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
% ---------------------------------------------------------------------------
|
|
|
|
% Members
|
|
|
|
% ---------------------------------------------------------------------------
|
|
|
|
%
|
|
|
|
% wxSocketClient
|
|
|
|
%
|
|
|
|
\membersection{wxSocketClient::wxSocketClient}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\func{}{wxSocketClient}{\param{wxSockFlags}{ flags = wxSocketBase::NONE}}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Constructor.
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\wxheading{Parameters}
|
|
|
|
|
|
|
|
\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
|
|
|
|
|
|
|
|
%
|
|
|
|
% ~wxSocketClient
|
|
|
|
%
|
|
|
|
\membersection{wxSocketClient::\destruct{wxSocketClient}}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\func{}{\destruct{wxSocketClient}}{\void}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Destructor.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% Connect
|
|
|
|
%
|
1998-10-07 07:04:27 -04:00
|
|
|
\membersection{wxSocketClient::Connect}\label{wxsocketclientconnect}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{bool}{ wait = TRUE}}
|
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
Connects to a server using the specified address.
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
If {\it wait} is TRUE, Connect will wait until the connection completes.
|
|
|
|
{\bf Warning:} This will block the GUI.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
If {\it 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.
|
2000-02-10 00:01:21 -05:00
|
|
|
To detect this, use \helpref{WaitOnConnect}{wxsocketclientwaitonconnect},
|
|
|
|
or catch {\bf wxSOCKET\_CONNECTION} events (for successful establishment)
|
|
|
|
and {\bf wxSOCKET\_LOST} events (for connection failure).
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
|
|
|
\docparam{address}{Address of the server.}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
\docparam{wait}{If TRUE, waits for the connection to complete.}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
|
|
|
Returns TRUE if the connection is established and no error occurs.
|
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
If {\it wait} was TRUE, and Connect returns FALSE, an error occured
|
|
|
|
and the connection failed.
|
|
|
|
|
|
|
|
If {\it wait} was FALSE, and Connect returns FALSE, you should still
|
|
|
|
be prepared to handle the completion of this connection request, either
|
2000-02-10 00:01:21 -05:00
|
|
|
with \helpref{WaitOnConnect}{wxsocketclientwaitonconnect} or by watching
|
|
|
|
{\bf wxSOCKET\_CONNECTION} and {\bf wxSOCKET\_LOST} events.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
1998-09-20 11:45:12 -04:00
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect},
|
|
|
|
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
|
1999-11-01 19:44:10 -05:00
|
|
|
\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% WaitOnConnect
|
|
|
|
%
|
1998-10-07 07:04:27 -04:00
|
|
|
\membersection{wxSocketClient::WaitOnConnect}\label{wxsocketclientwaitonconnect}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ milliseconds = 0}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Wait until a connection request completes, or until the specified timeout
|
|
|
|
elapses. Use this function after issuing a call to \helpref{Connect}{wxsocketclientconnect}
|
|
|
|
with {\it wait} set to FALSE.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
\docparam{seconds}{Number of seconds to wait.
|
|
|
|
If -1, it will wait for the default timeout,
|
|
|
|
as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
\docparam{millisecond}{Number of milliseconds to wait.}
|
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
2000-03-03 21:41:14 -05:00
|
|
|
WaitOnConnect returns TRUE if the connection request completes. This
|
|
|
|
does not necessarily mean that the connection was succesfully established;
|
|
|
|
it might also happen that the connection was refused by the peer. Use
|
|
|
|
\helpref{IsConnected}{wxsocketbaseisconnected} to distinguish between
|
|
|
|
these two situations.
|
|
|
|
|
|
|
|
If the timeout elapses, WaitOnConnect returns FALSE.
|
|
|
|
|
|
|
|
These semantics allow code like this:
|
1999-11-01 19:44:10 -05:00
|
|
|
|
2000-03-03 21:41:14 -05:00
|
|
|
\begin{verbatim}
|
|
|
|
// Issue the connection request
|
|
|
|
client->Connect(addr, FALSE);
|
|
|
|
|
|
|
|
// Wait until the request completes or until we decide to give up
|
2000-03-04 08:20:35 -05:00
|
|
|
bool waitmore = TRUE;
|
|
|
|
while ( !client->WaitOnConnect(seconds, millis) && waitmore )
|
2000-03-03 21:41:14 -05:00
|
|
|
{
|
|
|
|
// possibly give some feedback to the user,
|
|
|
|
// and update waitmore if needed.
|
|
|
|
}
|
|
|
|
bool success = client->IsConnected();
|
|
|
|
\end{verbatim}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
\helpref{wxSocketClient::Connect}{wxsocketclientconnect},
|
|
|
|
\helpref{wxSocketBase::IsConnected}{wxsocketbaseisconnected}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
% ---------------------------------------------------------------------------
|
1998-10-07 07:04:27 -04:00
|
|
|
% CLASS: wxSocketEvent
|
1998-09-20 11:45:12 -04:00
|
|
|
% ---------------------------------------------------------------------------
|
1998-10-07 07:04:27 -04:00
|
|
|
\section{\class{wxSocketEvent}}\label{wxsocketevent}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
This event class contains information about socket events.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{Derived from}
|
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\helpref{wxEvent}{wxevent}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1999-02-15 15:41:29 -05:00
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/socket.h>
|
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\wxheading{Event table macros}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
To process a socket event, use these event handler macros to direct input to member
|
|
|
|
functions that take a wxSocketEvent argument.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\twocolwidtha{7cm}
|
|
|
|
\begin{twocollist}\itemsep=0pt
|
|
|
|
\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a socket event, supplying the member function.}
|
2000-02-10 00:01:21 -05:00
|
|
|
\end{twocollist}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase}{wxsocketbase},
|
|
|
|
\helpref{wxSocketClient}{wxsocketclient},
|
1998-10-07 07:04:27 -04:00
|
|
|
\helpref{wxSocketServer}{wxsocketserver}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\membersection{wxSocketEvent::wxSocketEvent}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\func{}{wxSocketEvent}{\param{int}{ id = 0}}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
Constructor.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
2000-01-24 15:46:54 -05:00
|
|
|
\membersection{wxSocketEvent::Socket}\label{wxsocketeventsocket}
|
|
|
|
|
|
|
|
\constfunc{wxSocketBase *}{Socket}{\void}
|
|
|
|
|
|
|
|
Returns the socket object to which this event refers to. This makes
|
|
|
|
it possible to use the same event handler for different sockets.
|
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
\membersection{wxSocketEvent::SocketEvent}\label{wxsocketeventsocketevent}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1999-09-05 06:23:22 -04:00
|
|
|
\constfunc{wxSocketNotify}{SocketEvent}{\void}
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
Returns the socket event type.
|
1998-09-20 11:45:12 -04:00
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
% ---------------------------------------------------------------------------
|
|
|
|
% CLASS: wxSocketServer
|
|
|
|
% ---------------------------------------------------------------------------
|
|
|
|
\section{\class{wxSocketServer}}\label{wxsocketserver}
|
|
|
|
|
|
|
|
\wxheading{Derived from}
|
|
|
|
|
|
|
|
\helpref{wxSocketBase}{wxsocketbase}
|
|
|
|
|
1999-02-15 15:41:29 -05:00
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/socket.h>
|
|
|
|
|
1998-10-07 07:04:27 -04:00
|
|
|
% ---------------------------------------------------------------------------
|
|
|
|
% Members
|
|
|
|
% ---------------------------------------------------------------------------
|
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
|
|
|
|
%
|
|
|
|
% wxSocketServer
|
|
|
|
%
|
|
|
|
\membersection{wxSocketServer::wxSocketServer}\label{wxsocketserverconstr}
|
|
|
|
|
|
|
|
\func{}{wxSocketServer}{\param{wxSockAddress\&}{ address}, \param{wxSockFlags}{ flags = wxSocketBase::NONE}}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Constructs a new server and tries to bind to the specified {\it address}.
|
|
|
|
Before trying to accept new connections, test whether it succeeded with
|
|
|
|
\helpref{wxSocketBase::Ok}{wxsocketbaseok}.
|
1998-10-07 07:04:27 -04:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
|
|
|
\docparam{address}{Specifies the local address for the server (e.g. port number).}
|
|
|
|
|
|
|
|
\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
|
|
|
|
|
|
|
|
%
|
|
|
|
% ~wxSocketServer
|
|
|
|
%
|
|
|
|
\membersection{wxSocketServer::\destruct{wxSocketServer}}
|
|
|
|
|
|
|
|
\func{}{\destruct{wxSocketServer}}{\void}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Destructor (it doesn't close the accepted connections).
|
1998-10-07 07:04:27 -04:00
|
|
|
|
|
|
|
%
|
|
|
|
% Accept
|
|
|
|
%
|
1999-11-02 09:04:44 -05:00
|
|
|
\membersection{wxSocketServer::Accept}\label{wxsocketserveraccept}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
\func{wxSocketBase *}{Accept}{\param{bool}{ wait = TRUE}}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Accepts an incoming connection request, and creates a new
|
|
|
|
\helpref{wxSocketBase}{wxsocketbase} object which represents
|
|
|
|
the server-side of the connection.
|
1998-10-07 07:04:27 -04:00
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
If {\it wait} is TRUE and there are no pending connections to be
|
|
|
|
accepted, it will wait for the next incoming connection to arrive.
|
2000-02-10 00:01:21 -05:00
|
|
|
{\bf Warning:} This will block the GUI.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
If {\it wait} is FALSE, it will try to accept a pending connection
|
2000-02-10 00:01:21 -05:00
|
|
|
if there is one, but it will always return immediately without blocking
|
|
|
|
the GUI. If you want to use Accept in this way, you can either check for
|
|
|
|
incoming connections with \helpref{WaitForAccept}{wxsocketserverwaitforaccept}
|
2000-02-26 23:59:41 -05:00
|
|
|
or catch {\bf wxSOCKET\_CONNECTION} events, then call Accept once you know
|
2000-01-19 14:32:07 -05:00
|
|
|
that there is an incoming connection waiting to be accepted.
|
1998-10-07 07:04:27 -04:00
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
Returns an opened socket connection, or NULL if an error occured or
|
|
|
|
if the {\it wait} parameter was FALSE and there were no pending
|
|
|
|
connections.
|
1998-10-07 07:04:27 -04:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 09:04:44 -05:00
|
|
|
\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept},
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
|
|
|
|
\helpref{wxSocketBase::Notify}{wxsocketbasenotify},
|
1998-10-07 07:04:27 -04:00
|
|
|
\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith}
|
|
|
|
|
|
|
|
%
|
|
|
|
% AcceptWith
|
|
|
|
%
|
|
|
|
\membersection{wxSocketServer::AcceptWith}\label{wxsocketserveracceptwith}
|
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
\func{bool}{AcceptWith}{\param{wxSocketBase\&}{ socket}, \param{bool}{ wait = TRUE}}
|
1998-10-07 07:04:27 -04:00
|
|
|
|
|
|
|
Accept an incoming connection using the specified socket object.
|
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
|
|
|
\docparam{socket}{Socket to be initialized}
|
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
1999-11-01 19:44:10 -05:00
|
|
|
Returns TRUE on success, or FALSE if an error occured or if the
|
|
|
|
{\it wait} parameter was FALSE and there were no pending
|
|
|
|
connections.
|
|
|
|
|
1999-11-02 09:04:44 -05:00
|
|
|
\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept},
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
|
|
|
|
\helpref{wxSocketBase::Notify}{wxsocketbasenotify},
|
2000-01-04 06:54:57 -05:00
|
|
|
\helpref{wxSocketServer::Accept}{wxsocketserveraccept} for a detailed explanation
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
%
|
|
|
|
% WaitForAccept
|
|
|
|
%
|
|
|
|
\membersection{wxSocketServer::WaitForAccept}\label{wxsocketserverwaitforaccept}
|
|
|
|
|
|
|
|
\func{bool}{WaitForAccept}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
|
|
|
|
|
|
|
|
This function waits for an incoming connection. Use it if you want to call
|
2000-02-10 00:01:21 -05:00
|
|
|
\helpref{Accept}{wxsocketserveraccept} or \helpref{AcceptWith}{wxsocketserveracceptwith}
|
|
|
|
with {\it wait} set to FALSE, to detect when an incoming connection is waiting
|
|
|
|
to be accepted.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
\wxheading{Parameters}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
\docparam{seconds}{Number of seconds to wait.
|
|
|
|
If -1, it will wait for the default timeout,
|
|
|
|
as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
\docparam{millisecond}{Number of milliseconds to wait.}
|
|
|
|
|
|
|
|
\wxheading{Return value}
|
|
|
|
|
2000-02-10 00:01:21 -05:00
|
|
|
Returns TRUE if an incoming connection arrived, FALSE if the timeout elapsed.
|
1999-11-01 19:44:10 -05:00
|
|
|
|
|
|
|
\wxheading{See also}
|
|
|
|
|
1999-11-02 05:02:01 -05:00
|
|
|
\helpref{wxSocketServer::Accept}{wxsocketserveraccept},
|
1999-11-01 19:44:10 -05:00
|
|
|
\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith}
|
|
|
|
|