\section{\class{wxSocketBase}}\label{wxsocketbase} \wxheading{Derived from} \helpref{wxEvtHandler}{wxevthandler} % --------------------------------------------------------------------------- % Event handling % --------------------------------------------------------------------------- \wxheading{Event handling} To process events from a socket, use the following event handler macro to direct input to member functions that take a \helpref{wxSocketEvent}{wxsocketevent} argument. \twocolwidtha{7cm} \begin{twocollist}\itemsep=0pt \twocolitem{{\bf EVT\_SOCKET(id, func)}}{A socket event occured.} \end{twocollist}% % --------------------------------------------------------------------------- % See also ... % --------------------------------------------------------------------------- \wxheading{See also} \helpref{wxSocketEvent}{wxsocketevent} \helpref{wxSocketClient}{wxsocketclient} \helpref{wxSocketServer}{wxsocketserver} % --------------------------------------------------------------------------- % Members % --------------------------------------------------------------------------- \latexignore{\rtfignore{\wxheading{Members}}} \membersection{wxSocketBase::wxSocketBase} \func{}{wxSocketBase}{\void} Default constructor but don't use it, you must use \helpref{wxSocketClient}{wxsocketclient} or \helpref{wxSocketServer}{wxsocketserver}. \membersection{wxSocketBase::\destruct{wxSocketBase}} \func{}{\destruct{wxSocketBase}}{\void} Destroys the wxSocketBase object. % --------------------------------------------------------------------------- % State functions % --------------------------------------------------------------------------- \membersection{wxSocketBase::Ok}\label{wxsocketbaseok} \constfunc{bool}{Ok}{\void} Returns TRUE if the socket is initialized and ready and FALSE in other cases. \membersection{wxSocketBase::Error}\label{wxsocketbaseerror} \constfunc{bool}{Error}{\void} Returns TRUE if an error occured. \membersection{wxSocketBase::IsConnected}\label{wxsocketbaseconnected} \constfunc{bool}{IsConnected}{\void} Returns TRUE if the socket is connected. \membersection{wxSocketBase::IsData}\label{wxsocketbaseerror} \constfunc{bool}{IsData}{\void} Returns TRUE if some data is arrived on the socket. \membersection{wxSocketBase::IsDisconnected}\label{wxsocketbasedisconnected} \constfunc{bool}{IsDisconnected}{\void} Returns TRUE if the socket is disconnected. \membersection{wxSocketBase::IsNoWait}\label{wxsocketbasenowait} \constfunc{bool}{IsNoWait}{\void} Returns TRUE if the socket mustn't wait. \membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount} \constfunc{size\_t}{LastCount}{\void} Returns the number of bytes read or written by the last IO call. \membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror} \constfunc{int}{LastError}{\void} Returns an error in the errno format (see your C programmer's guide). % --------------------------------------------------------------------------- % IO calls % --------------------------------------------------------------------------- % % Peek % \membersection{wxSocketBase::Peek}\label{wxsocketbasepeek} \func{wxSocketBase\&}{Peek}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}} This function peeks a buffer of {\it nbytes} bytes from the socket. Peeking a buffer doesn't delete it from the system socket in-queue. \wxheading{Parameters} \docparam{buffer}{Buffer where to put peeked data.} \docparam{nbytes}{Number of bytes.} \wxheading{Returns value} Returns a reference to the current object. \wxheading{See also} \helpref{wxSocketBase::Error}{wxsocketbaserror}, \helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, \helpref{wxSocketBase::LastError}{wxsocketbaselasterror} % % Read % \membersection{wxSocketBase::Read}\label{wxsocketbaseread} \func{wxSocketBase\&}{Read}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}} This function reads a buffer of {\it nbytes} bytes from the socket. \wxheading{Parameters} \docparam{buffer}{Buffer where to put read data.} \docparam{nbytes}{Number of bytes.} \wxheading{Returns value} Returns a reference to the current object. \wxheading{See also} \helpref{wxSocketBase::Error}{wxsocketbaserror}, \helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, \helpref{wxSocketBase::LastError}{wxsocketbaselasterror} % % Read % \membersection{wxSocketBase::Write}\label{wxsocketbasewrite} \func{wxSocketBase\&}{Write}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}} This function writes a buffer of {\it nbytes} bytes from the socket. \wxheading{Parameters} \docparam{buffer}{Buffer where to get the data to write.} \docparam{nbytes}{Number of bytes.} \wxheading{Returns value} Returns a reference to the current object. \wxheading{See also} \helpref{wxSocketBase::Error}{wxsocketbaserror}, \helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, \helpref{wxSocketBase::LastError}{wxsocketbaselasterror} % % WriteMsg % \membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg} \func{wxSocketBase\&}{WriteMsg}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}} This function writes a buffer of {\it nbytes} bytes from the socket. But it writes a short header before so that ReadMsg can alloc the right size for the buffer. So a buffer sent with WriteMsg {\bf must} be read with ReadMsg. \wxheading{Parameters} \docparam{buffer}{Buffer where to put data peeked.} \docparam{nbytes}{Number of bytes.} \wxheading{Returns value} Returns a reference to the current object. \wxheading{See also} \helpref{wxSocketBase::Error}{wxsocketbaserror}, \helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, \helpref{wxSocketBase::LastError}{wxsocketbaselasterror}, \helpref{wxSocketBase::ReadMsg}{wxsocketbasereadmsg} % % ReadMsg % \membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg} \func{wxSocketBase\&}{ReadMsg}{\param{char *}{ buffer}, \param{size\_t}{ nbytes}} This function reads a buffer sent by WriteMsg on a socket. If the buffer passed to the function isn't big enough, the function filled it and then discard the bytes left. This function always wait for the buffer to be entirely filled. \wxheading{Parameters} \docparam{buffer}{Buffer where to put read data.} \docparam{nbytes}{Number of bytes allocated for the buffer.} \wxheading{Returns value} Returns a reference to the current object. \wxheading{See also} \helpref{wxSocketBase::Error}{wxsocketbaserror}, \helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, \helpref{wxSocketBase::LastError}{wxsocketbaselasterror}, \helpref{wxSocketBase::WriteMsg}{wxsocketbasewritemsg} % % Unread % \membersection{wxSocketBase::UnRead}\label{wxsocketbaseunread} \func{wxSocketBase\&}{UnRead}{\param{const char *}{ buffer}, \param{size\_t}{ nbytes}} This function unreads a buffer. It means that the buffer is put in the top of the incoming queue. But, it is put also at the end of all unread buffers. It is useful for sockets because we can't seek it. \wxheading{Parameters} \docparam{buffer}{Buffer to be unread.} \docparam{nbytes}{Number of bytes.} \wxheading{Returns value} Returns a reference to the current object. \wxheading{See also} \helpref{wxSocketBase::Error}{wxsocketbaserror}, \helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, \helpref{wxSocketBase::LastError}{wxsocketbaselasterror} % % Discard % \membersection{wxSocketBase::Discard}\label{wxsocketbasediscard} \func{wxSocketBase\&}{Discard}{\void} This function simply deletes all bytes in the incoming queue. This function doesn't wait. % --------------------------------------------------------------------------- % Wait functions % --------------------------------------------------------------------------- \membersection{wxSocketBase::Wait}\label{wxsocketbasewait} \func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}} This function waits for an event: it could be an incoming byte, the possibility for the client to write, a lost connection, an incoming connection, an established connection. \wxheading{Parameters} \docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.} \docparam{microsecond}{Number of microseconds to wait.} \wxheading{Return value:} Returns TRUE if an event occured, FALSE if the timeout was reached. \wxheading{See also} \helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread}, \helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite}, \helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost} % % WaitForRead % \membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread} \func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}} This function waits for a read event. \wxheading{Parameters} \docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.} \docparam{microsecond}{Number of microseconds to wait.} \wxheading{Return value:} Returns TRUE if a byte arrived, FALSE if the timeout was reached. \wxheading{See also} \helpref{wxSocketBase::Wait}{wxsocketbasewait}, \helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite}, \helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost} % % WaitForWrite % \membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite} \func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}} This function waits for a write event. \wxheading{Parameters} \docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.} \docparam{microsecond}{Number of microseconds to wait.} \wxheading{Return value:} Returns TRUE if a write event occured, FALSE if the timeout was reached. \wxheading{See also} \helpref{wxSocketBase::Wait}{wxsocketbasewait}, \helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread}, \helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost} % % WaitForLost % \membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost} \func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ microsecond = 0}} This function waits for a "lost" event. For instance, the peer may have closed the connection, or the connection may have been broken. \wxheading{Parameters} \docparam{seconds}{Number of seconds to wait. By default, it waits infinitely.} \docparam{microsecond}{Number of microseconds to wait.} \wxheading{Return value:} Returns TRUE if a "lost" event occured, FALSE if the timeout was reached. \wxheading{See also} \helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread}, \helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite}, \helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost} % --------------------------------------------------------------------------- % Socket state % --------------------------------------------------------------------------- % % SaveState % \membersection{wxSocketBase::SaveState}\label{wxsocketbasesavestate} \func{void}{SaveState}{\void} This function saves the current state of the socket object in a stack: actually it saves all flags and the state of the asynchronous callbacks. \wxheading{See also} \helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate} % % RestoreState % \membersection{wxSocketBase::RestoreState}\label{wxsocketbaserestorestate} \func{void}{RestoreState}{\void} This function restores a previously saved state. \wxheading{See also} \helpref{wxSocketBase::SaveState}{wxsocketbasesavestate} % --------------------------------------------------------------------------- % Socket callbacks % --------------------------------------------------------------------------- \membersection{wxSocketBase::SetEventHandler}{wxsocketbaseseteventhandler} \func{void}{SetEventHandler}{\param{wxEvtHandler\&}{ evt\_hdlr}, \param{int}{ id = -1}} Sets an event handler to be called when a socket event occured. \wxheading{Parameters} \docparam{evt\_hdlr}{Specifies the event handler you want to use.} \docparam{id}{The id of socket event.} \wxheading{See also} \helpref{wxSocketEvent}{wxsocketevent} % --------------------------------------------------------------------------- % CLASS wxSocketClient % --------------------------------------------------------------------------- \section{\class{wxSocketClient}}\label{wxsocketclient} \wxheading{Derived from} \helpref{wxSocketBase}{wxsocketbase} % --------------------------------------------------------------------------- % Members % --------------------------------------------------------------------------- % % wxSocketClient % \membersection{wxSocketClient::wxSocketClient} \func{}{wxSocketClient}{\param{wxSockFlags}{ flags = wxSocketBase::NONE}} Constructs a new wxSocketClient. {\bf Warning !} The created needs to be registered to a socket handler (See \helpref{wxSocketHandler}{wxsockethandler}). \wxheading{Parameters} \docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})} % % ~wxSocketClient % \membersection{wxSocketClient::\destruct{wxSocketClient}} \func{}{\destruct{wxSocketClient}}{\void} Destructs a wxSocketClient object. % % Connect % \membersection{wxSocketClient::Connect}{wxsocketclientconnect} \func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{bool}{ wait = TRUE}} Connects to a server using the specified address. If {\it wait} is TRUE, Connect will wait for the socket ready to send or receive data. \wxheading{Parameters} \docparam{address}{Address of the server.} \docparam{wait}{If true, waits for the connection to be ready.} \wxheading{Return value} Returns TRUE if the connection is established and no error occurs. \wxheading{See also} \helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect} % % WaitOnConnect % \membersection{wxSocketClient::WaitOnConnect} \func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ microseconds = 0}} Wait for a "connect" event. \wxheading{See also} \helpref{wxSocketBase::Wait}{wxsocketbasewait} for a detailed description. % --------------------------------------------------------------------------- % CLASS: wxSocketServer % --------------------------------------------------------------------------- \section{\class{wxSocketServer}}\label{wxsocketserver} \wxheading{Derived from} \helpref{wxSocketBase}{wxsocketbase} % --------------------------------------------------------------------------- % Members % --------------------------------------------------------------------------- \latexignore{\rtfignore{\wxheading{Members}}} % % wxSocketServer % \membersection{wxSocketServer::wxSocketServer}{wxsocketserverconstr} \func{}{wxSocketServer}{\param{wxSockAddress\&}{ address}, \param{wxSockFlags}{ flags = wxSocketBase::NONE}} Constructs a new wxSocketServer. {\bf Warning !} The created object needs to be registered to a socket handler (See \helpref{wxSocketHandler}{wxsockethandler}). \wxheading{Parameters} \docparam{address}{Specifies the local address for the server (e.g. port number).} \docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbase setflags})} % % ~wxSocketServer % \membersection{wxSocketServer::\destruct{wxSocketServer}} \func{}{\destruct{wxSocketServer}}{\void} Destructs a wxSocketServer object (it doesn't close the accepted connection). % % Accept % \membersection{wxSocketServer::Accept} \func{wxSocketBase *}{Accept}{\void} Creates a new object wxSocketBase and accepts an incoming connection. {\bf Warning !} This function will block the GUI. \wxheading{Return value} Returns an opened socket connection. \wxheading{See also} \helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith} % % AcceptWith % \membersection{wxSocketServer::AcceptWith}{wxsocketserveracceptwith} \func{bool}{AcceptWith}{\param{wxSocketBase\&}{ socket}} Accept an incoming connection using the specified socket object. This is useful when someone wants to inherit wxSocketBase. \wxheading{Parameters} \docparam{socket}{Socket to be initialized} \wxheading{Return value} Returns TRUE if no error occurs, else FALSE. % --------------------------------------------------------------------------- % CLASS: wxSocketHandler % --------------------------------------------------------------------------- \section{\class{wxSocketHandler}}\label{wxsockethandler} \wxheading{Derived from} \helpref{wxObject}{wxobject} % --------------------------------------------------------------------------- % Members % --------------------------------------------------------------------------- \latexignore{\rtfignore{\wxheading{Members}}} % % wxSocketHandler % \membersection{wxSocketHandler::wxSocketHandler} \func{}{wxSocketHandler}{\void} Constructs a new wxSocketHandler. It is advised to use \helpref{wxSocketHandler::Master}{wxsockethandlermaster} to get a socket handler. But creating a socket handler is useful to group many sockets. % % ~wxSocketHandler % \membersection{wxSocketHandler::\destruct{wxSocketHandler}} \func{}{\destruct{wxSocketHandler}}{\void} Destructs a wxSocketHandler object. % % Register % \membersection{wxSocketHandler::Register} \func{void}{Register}{\param{wxSocketBase *}{socket}} Register a socket: if it is already registered in this handler it will just return immediately. \wxheading{Parameters} \docparam{socket}{Socket to be registered.} % % UnRegister % \membersection{wxSocketHandler::UnRegister} \func{void}{UnRegister}{\param{wxSocketBase *}{socket}} UnRegister a socket: if it isn't registered in this handler it will just return. \wxheading{Parameters} \docparam{socket}{Socket to be unregistered.} % % Count % \membersection{wxSocketHandler::Count} \constfunc{unsigned long}{Count}{\void} Returns the number of sockets registered in the handler. \wxheading{Return value} Number of sockets registered. % % CreateServer % \membersection{wxSocketHandler::CreateServer} \func{wxSocketServer *}{CreateServer}{\param{wxSockAddress\&}{ address}, \param{wxSocketBase::wxSockFlags}{ flags = wxSocketbase::NONE}} Creates a new wxSocketServer object. The object is automatically registered to the current socket handler. For a detailed description of the parameters, see \helpref{wxSocketServer::wxSocketServer}{wxsocketserverconstr}. \wxheading{Return value} Returns a new socket server. % % CreateClient % \membersection{wxSocketHandler::CreateClient} \func{wxSocketServer *}{CreateClient}{\param{wxSocketBase::wxSockFlags}{ flags = wxSocketbase::NONE}} Creates a new wxSocketClient object. The object is automatically registered to the current socket handler. For a detailed description of the parameters, see \helpref{wxSocketClient::Connect}{wxsocketclientconnect}. \wxheading{Return value} Returns a new socket client. % % Master % \membersection{wxSocketHandler::Master} \func{static wxSocketHandler\&}{Master}{\void} Returns a default socket handler.