]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/socket.tex
Some doc updates,
[wxWidgets.git] / docs / latex / wx / socket.tex
... / ...
CommitLineData
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2%% Name: socket.tex
3%% Purpose: wxSocket docs
4%% Author: Guillermo Rodriguez Garcia <guille@iies.es>
5%% Modified by:
6%% Created: 1999
7%% RCS-ID: $Id$
8%% Copyright: (c) wxWindows team
9%% Licence: wxWindows licence
10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
12\section{\class{wxSocketBase}}\label{wxsocketbase}
13
14wxSocketBase is the base class for all socket-related objects, and it
15defines all basic IO functionality.
16
17\wxheading{Derived from}
18
19\helpref{wxObject}{wxobject}
20
21\wxheading{Include files}
22
23<wx/socket.h>
24
25\wxheading{wxSocket errors}
26
27\twocolwidtha{7cm}
28\begin{twocollist}\itemsep=0pt
29\twocolitem{{\bf wxSOCKET\_NOERROR}}{No error happened.}
30\twocolitem{{\bf wxSOCKET\_INVOP}}{Invalid operation.}
31\twocolitem{{\bf wxSOCKET\_IOERR}}{Input/Output error.}
32\twocolitem{{\bf wxSOCKET\_INVADDR}}{Invalid address passed to wxSocket.}
33\twocolitem{{\bf wxSOCKET\_INVSOCK}}{Invalid socket (uninitialized).}
34\twocolitem{{\bf wxSOCKET\_NOHOST}}{No corresponding host.}
35\twocolitem{{\bf wxSOCKET\_INVPORT}}{Invalid port.}
36\twocolitem{{\bf wxSOCKET\_WOULDBLOCK}}{The socket is non-blocking and the operation would block.}
37\twocolitem{{\bf wxSOCKET\_TIMEDOUT}}{The timeout for this operation expired.}
38\twocolitem{{\bf wxSOCKET\_MEMERR}}{Memory exhausted.}
39\end{twocollist}
40
41\wxheading{wxSocket events}
42
43\twocolwidtha{7cm}
44\begin{twocollist}\itemsep=0pt
45\twocolitem{{\bf wxSOCKET\_INPUT}}{There is data available for reading.}
46\twocolitem{{\bf wxSOCKET\_OUTPUT}}{The socket is ready to be written to.}
47\twocolitem{{\bf wxSOCKET\_CONNECTION}}{Incoming connection (server), or connection establishment (client).}
48\twocolitem{{\bf wxSOCKET\_LOST}}{The connection has been closed.}
49\end{twocollist}
50
51A brief note on how to use these events:
52
53The {\bf wxSOCKET\_INPUT} event will be issued whenever there is data
54available for reading. This will be the case if the input queue was
55empty and new data arrives, or if the application has read some data
56yet there is still more data available. This means that the application
57does not need to read all available data in response to a
58{\bf wxSOCKET\_INPUT} event, as more events will be produced as
59necessary.
60
61The {\bf wxSOCKET\_OUTPUT} event is issued when a socket is first
62connected with \helpref{Connect}{wxsocketclientconnect} or accepted
63with \helpref{Accept}{wxsocketserveraccept}. After that, new
64events will be generated only after an output operation fails
65with {\bf wxSOCKET\_WOULDBLOCK} and buffer space becomes available
66again. This means that the application should assume that it
67can write data to the socket until an {\bf wxSOCKET\_WOULDBLOCK}
68error occurs; after this, whenever the socket becomes writable
69again the application will be notified with another
70{\bf wxSOCKET\_OUTPUT} event.
71
72The {\bf wxSOCKET\_CONNECTION} event is issued when a delayed connection
73request completes succesfully (client) or when a new connection arrives
74at the incoming queue (server).
75
76The {\bf wxSOCKET\_LOST} event is issued when a close indication is
77received for the socket. This means that the connection broke down or
78that it was closed by the peer. Also, this event will be issued if
79a delayed connection request fails.
80
81\wxheading{Event handling}
82
83To process events coming from a socket object, use the following event
84handler macro to direct events to member functions that take a
85\helpref{wxSocketEvent}{wxsocketevent} argument.
86
87\twocolwidtha{7cm}%
88\begin{twocollist}\itemsep=0pt
89\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a wxEVT\_SOCKET event.}
90\end{twocollist}
91
92\wxheading{See also}
93
94\helpref{wxSocketEvent}{wxsocketevent},
95\helpref{wxSocketClient}{wxsocketclient},
96\helpref{wxSocketServer}{wxsocketserver},
97\helpref{Sockets sample}{samplesockets}
98
99% ---------------------------------------------------------------------------
100% Function groups
101% ---------------------------------------------------------------------------
102
103\latexignore{\rtfignore{\wxheading{Function groups}}}
104
105\membersection{Construction and destruction}
106
107\helpref{wxSocketBase}{wxsocketbaseconstruct}\\
108\helpref{\destruct{wxSocketBase}}{wxsocketbasedestruct}\\
109\helpref{wxDestroy}{wxsocketbasedestroy}
110
111\membersection{Socket state}
112
113Functions to retrieve current state and miscellaneous info.
114
115\helpref{Error}{wxsocketbaseerror}\\
116\helpref{GetLocal}{wxsocketbasegetlocal}\\
117\helpref{GetPeer}{wxsocketbasegetpeer}
118\helpref{IsConnected}{wxsocketbaseisconnected}\\
119\helpref{IsData}{wxsocketbaseisdata}\\
120\helpref{IsDisconnected}{wxsocketbaseisdisconnected}\\
121\helpref{LastCount}{wxsocketbaselastcount}\\
122\helpref{LastError}{wxsocketbaselasterror}\\
123\helpref{Ok}{wxsocketbaseok}\\
124\helpref{SaveState}{wxsocketbasesavestate}\\
125\helpref{RestoreState}{wxsocketbaserestorestate}
126
127\membersection{Basic IO}
128
129Functions that perform basic IO functionality.
130
131\helpref{Close}{wxsocketbaseclose}\\
132\helpref{Discard}{wxsocketbasediscard}\\
133\helpref{Peek}{wxsocketbasepeek}\\
134\helpref{Read}{wxsocketbaseread}\\
135\helpref{ReadMsg}{wxsocketbasereadmsg}\\
136\helpref{Unread}{wxsocketbaseunread}\\
137\helpref{Write}{wxsocketbasewrite}\\
138\helpref{WriteMsg}{wxsocketbasewritemsg}
139
140Functions that perform a timed wait on a certain IO condition.
141
142\helpref{InterruptWait}{wxsocketbaseinterruptwait}\\
143\helpref{Wait}{wxsocketbasewait}\\
144\helpref{WaitForLost}{wxsocketbasewaitforlost}\\
145\helpref{WaitForRead}{wxsocketbasewaitforread}\\
146\helpref{WaitForWrite}{wxsocketbasewaitforwrite}\\
147
148and also:
149
150\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept}\\
151\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect}
152
153Functions that allow applications to customize socket IO as needed.
154
155\helpref{GetFlags}{wxsocketbasegetflags}\\
156\helpref{SetFlags}{wxsocketbasesetflags}\\
157\helpref{SetTimeout}{wxsocketbasesettimeout}
158
159\membersection{Handling socket events}
160
161Functions that allow applications to receive socket events.
162
163\helpref{Notify}{wxsocketbasenotify}\\
164\helpref{SetNotify}{wxsocketbasesetnotify}\\
165\helpref{GetClientData}{wxsocketbasegetclientdata}\\
166\helpref{SetClientData}{wxsocketbasesetclientdata}\\
167\helpref{SetEventHandler}{wxsocketbaseseteventhandler}
168
169Callback functions are also available, but they are provided for backwards
170compatibility only. Their use is strongly discouraged in favour of events,
171and should be considered deprecated. Callbacks may be unsupported in future
172releases of wxWindows.
173
174\helpref{Callback}{wxsocketbasecallback}\\
175\helpref{CallbackData}{wxsocketbasecallbackdata}
176
177
178% ---------------------------------------------------------------------------
179% Members here
180% ---------------------------------------------------------------------------
181
182\helponly{\insertatlevel{2}{
183
184\wxheading{Members}
185
186}}
187
188\membersection{wxSocketBase::wxSocketBase}\label{wxsocketbaseconstruct}
189
190\func{}{wxSocketBase}{\void}
191
192Default constructor. Don't use it directly; instead, use
193\helpref{wxSocketClient}{wxsocketclient} to construct a socket client, or
194\helpref{wxSocketServer}{wxsocketserver} to construct a socket server.
195
196\membersection{wxSocketBase::\destruct{wxSocketBase}}\label{wxsocketbasedestruct}
197
198\func{}{\destruct{wxSocketBase}}{\void}
199
200Destructor. Do not destroy a socket using the delete operator directly;
201use \helpref{Destroy}{wxsocketbasedestroy} instead. Also, do not create
202socket objects in the stack.
203
204%
205% Callback
206%
207\membersection{wxSocketBase::Callback}\label{wxsocketbasecallback}
208
209\func{wxSocketBase::wxSockCbk}{Callback}{\param{wxSocketBase::wxSockCbk}{ callback}}
210
211You can setup a callback function to be called when an event occurs.
212The function will be called only for those events for which notification
213has been enabled with \helpref{Notify}{wxsocketbasenotify} and
214\helpref{SetNotify}{wxsocketbasesetnotify}. The prototype of the
215callback must be as follows:
216
217\begin{verbatim}
218void SocketCallback(wxSocketBase& sock, wxSocketNotify evt, char *cdata);
219\end{verbatim}
220
221The first parameter is a reference to the socket object in which the
222event occured. The second parameter tells you which event occured.
223(See \helpref{wxSocket events}{wxsocketbase}). The third parameter
224is the user data you specified using \helpref{CallbackData}{wxsocketbasecallbackdata}.
225
226Note that events are preferred over callbacks where possible.
227
228\wxheading{Return value}
229
230A pointer to the previous callback.
231
232\wxheading{See also}
233
234\helpref{wxSocketBase::CallbackData}{wxsocketbasecallbackdata},
235\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
236\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
237
238%
239% CallbackData
240%
241\membersection{wxSocketBase::CallbackData}\label{wxsocketbasecallbackdata}
242
243\func{char *}{CallbackData}{\param{char *}{cdata}}
244
245This function sets the the user data which will be passed to a
246callback function set via \helpref{Callback}{wxsocketbasecallback}.
247
248Note that events are preferred over callbacks where possible.
249
250\wxheading{Return value}
251
252A pointer to the previous user data.
253
254\helpref{wxSocketBase::Callback}{wxsocketbasecallback},
255\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
256\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
257
258%
259% Close
260%
261\membersection{wxSocketBase::Close}\label{wxsocketbaseclose}
262
263\func{void}{Close}{\void}
264
265This function shuts down the socket, disabling further transmission and
266reception of data; it also disables events for the socket and frees the
267associated system resources. Upon socket destruction, Close is automatically
268called. This means that you don't need to do it yourself, unless you
269explicitly want to disable further operation.
270
271\wxheading{Remark/Warning}
272
273Although Close immediately disables events for the socket, it is possible
274that event messages may be waiting in the application's event queue. The
275application must therefore be prepared to handle socket event messages
276even after calling Close.
277
278%
279% Destroy
280%
281\membersection{wxSocketBase::Destroy}\label{wxsocketbasedestroy}
282
283\func{bool}{Destroy}{\void}
284
285Destroys the socket safely. Use this function instead of the delete operator,
286since otherwise socket events could reach the application even after the
287socket has been destroyed. To prevent this problem, this function appends
288the wxSocket to a list of object to be deleted on idle time, after all
289events have been processed. For the same reason, you should avoid creating
290socket objects in the stack.
291
292Destroy calls \helpref{Close}{wxsocketbaseclose} automatically.
293
294\wxheading{Return value}
295
296Always TRUE.
297
298%
299% Discard
300%
301\membersection{wxSocketBase::Discard}\label{wxsocketbasediscard}
302
303\func{wxSocketBase\&}{Discard}{\void}
304
305This function simply deletes all bytes in the incoming queue. This function
306always returns immediately and its operation is not affected by IO flags.
307
308Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually discarded.
309
310If you use \helpref{Error}{wxsocketbaseerror}, it will always return FALSE.
311
312%
313% Error
314%
315\membersection{wxSocketBase::Error}\label{wxsocketbaseerror}
316
317\constfunc{bool}{Error}{\void}
318
319Returns TRUE if an error occured in the last IO operation.
320
321Use this function to check for an error condition after one of the
322following calls: Discard, Peek, Read, ReadMsg, Unread, Write, WriteMsg.
323
324%
325% GetClientData
326%
327\membersection{wxSocketBase::GetClientData}\label{wxsocketbasegetclientdata}
328
329\constfunc{void *}{GetClientData}{\void}
330
331Returns a pointer of the client data for this socket, as set with
332\helpref{SetClientData}{wxsocketbasesetclientdata}
333
334%
335% GetLocal
336%
337\membersection{wxSocketBase::GetLocal}\label{wxsocketbasegetlocal}
338
339\constfunc{bool}{GetLocal}{\param{wxSockAddress\& }{addr\_man}}
340
341This function returns the local address field of the socket. The local
342address field contains the complete local address of the socket (local
343address, local port, ...).
344
345\wxheading{Return value}
346
347It returns TRUE if no errors happened, FALSE otherwise.
348
349%
350% GetFlags
351%
352\membersection{wxSocketBase::GetFlags}\label{wxsocketbasegetflags}
353
354\constfunc{wxSocketFlags}{GetFlags}{\void}
355
356Returns current IO flags, as set with \helpref{SetFlags}{wxsocketbasesetflags}
357
358%
359% GetPeer
360%
361\membersection{wxSocketBase::GetPeer}\label{wxsocketbasegetpeer}
362
363\constfunc{bool}{GetPeer}{\param{wxSockAddress\& }{addr\_man}}
364
365This function returns the peer address field of the socket. The peer
366address field contains the complete peer host address of the socket
367(address, port, ...).
368
369\wxheading{Return value}
370
371It returns TRUE if no errors happened, FALSE otherwise.
372
373%
374% InterruptWait
375%
376\membersection{wxSocketBase::InterruptWait}\label{wxsocketbaseinterruptwait}
377
378\func{void}{InterruptWait}{\void}
379
380Use this function to interrupt any wait operation currently in progress.
381Note that this is not intended as a regular way to interrupt a Wait call,
382but only as an escape mechanism for exceptional situations where it is
383absolutely necessary to use it, for example to abort an operation due to
384some exception or abnormal problem. InterruptWait is automatically called
385when you \helpref{Close}{wxsocketbaseclose} a socket (and thus also upon
386socket destruction), so you don't need to use it in these cases.
387
388\helpref{wxSocketBase::Wait}{wxsocketbasewait},
389\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept},
390\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost},
391\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
392\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
393\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect}
394
395%
396% IsConnected
397%
398\membersection{wxSocketBase::IsConnected}\label{wxsocketbaseisconnected}
399
400\constfunc{bool}{IsConnected}{\void}
401
402Returns TRUE if the socket is connected.
403
404%
405% IsData
406%
407\membersection{wxSocketBase::IsData}\label{wxsocketbaseisdata}
408
409\constfunc{bool}{IsData}{\void}
410
411This function waits until the socket is readable. This might mean that
412queued data is available for reading or, for streamed sockets, that
413the connection has been closed, so that a read operation will complete
414immediately without blocking (unless the {\bf wxSOCKET\_WAITALL} flag
415is set, in which case the operation might still block).
416
417\membersection{wxSocketBase::IsDisconnected}\label{wxsocketbaseisdisconnected}
418
419%
420% IsDisconnected
421%
422\constfunc{bool}{IsDisconnected}{\void}
423
424Returns TRUE if the socket is not connected.
425
426\membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount}
427
428%
429% LastCount
430%
431\constfunc{wxUint32}{LastCount}{\void}
432
433Returns the number of bytes read or written by the last IO call.
434
435Use this function to get the number of bytes actually transferred
436after using one of the following IO calls: Discard, Peek, Read,
437ReadMsg, Unread, Write, WriteMsg.
438
439%
440% LastError
441%
442\membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror}
443
444\constfunc{wxSocketError}{LastError}{\void}
445
446Returns the last wxSocket error. See \helpref{wxSocket errors}{wxsocketbase}.
447
448Please note that this function merely returns the last error code,
449but it should not be used to determine if an error has occured (this
450is because successful operations do not change the LastError value).
451Use \helpref{Error}{wxsocketbaseerror} first, in order to determine
452if the last IO call failed. If this returns TRUE, use LastError
453to discover the cause of the error.
454
455%
456% Notify
457%
458\membersection{wxSocketBase::Notify}\label{wxsocketbasenotify}
459
460\func{void}{Notify}{\param{bool}{ notify}}
461
462According to the {\it notify} value, this function enables
463or disables socket events. If {\it notify} is TRUE, the events
464configured with \helpref{SetNotify}{wxsocketbasesetnotify} will
465be sent to the application. If {\it notify} is FALSE; no events
466will be sent.
467
468%
469% Ok
470%
471\membersection{wxSocketBase::Ok}\label{wxsocketbaseok}
472
473\constfunc{bool}{Ok}{\void}
474
475Returns TRUE if the socket is initialized and ready and FALSE in other
476cases.
477
478\wxheading{Remark/Warning}
479
480For \helpref{wxSocketClient}{wxsocketclient}, Ok won't return TRUE unless
481the client is connected to a server.
482
483For \helpref{wxSocketServer}{wxsocketserver}, Ok will return TRUE if the
484server could bind to the specified address and is already listening for
485new connections.
486
487Ok does not check for IO errors; use \helpref{Error}{wxsocketbaseerror}
488instead for that purpose.
489
490%
491% RestoreState
492%
493\membersection{wxSocketBase::RestoreState}\label{wxsocketbaserestorestate}
494
495\func{void}{RestoreState}{\void}
496
497This function restores the previous state of the socket, as saved
498with \helpref{SaveState}{wxsocketbasesavestate}
499
500Calls to SaveState and RestoreState can be nested.
501
502\wxheading{See also}
503
504\helpref{wxSocketBase::SaveState}{wxsocketbasesavestate}
505
506%
507% SaveState
508%
509\membersection{wxSocketBase::SaveState}\label{wxsocketbasesavestate}
510
511\func{void}{SaveState}{\void}
512
513This function saves the current state of the socket in a stack. Socket
514state includes flags, as set with \helpref{SetFlags}{wxsocketbasesetflags},
515event mask, as set with \helpref{SetNotify}{wxsocketbasesetnotify} and
516\helpref{Notify}{wxsocketbasenotify}, user data, as set with
517\helpref{SetClientData}{wxsocketbasesetclientdata}, and asynchronous
518callback settings, as set with \helpref{Callback}{wxsocketbasecallback}
519and \helpref{CallbackData}{wxsocketbasecallbackdata}.
520
521Calls to SaveState and RestoreState can be nested.
522
523\wxheading{See also}
524
525\helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate}
526
527%
528% SetClientData
529%
530\membersection{wxSocketBase::SetClientData}\label{wxsocketbasesetclientdata}
531
532\func{void}{SetClientData}{\param{void *}{data}}
533
534Sets user-supplied client data for this socket. All socket events will
535contain a pointer to this data, which can be retrieved with the
536\helpref{wxSocketEvent::GetClientData}{wxsocketeventgetclientdata}
537function.
538
539%
540% SetEventHandler
541%
542\membersection{wxSocketBase::SetEventHandler}\label{wxsocketbaseseteventhandler}
543
544\func{void}{SetEventHandler}{\param{wxEvtHandler\&}{ evt\_hdlr}, \param{int}{ id = -1}}
545
546Sets an event handler to be called when a socket event occurs. The
547handler will be called for those events for which notification is
548enabled with \helpref{SetNotify}{wxsocketbasesetnotify} and
549\helpref{Notify}{wxsocketbasenotify}.
550
551\wxheading{Parameters}
552
553\docparam{evt\_hdlr}{Specifies the event handler you want to use.}
554
555\docparam{id}{The id of socket event.}
556
557\wxheading{See also}
558
559\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
560\helpref{wxSocketBase::Notify}{wxsocketbasenotify},
561\helpref{wxSocketEvent}{wxsocketevent},
562\helpref{wxEvtHandler}{wxevthandler},
563
564%
565% SetFlags
566%
567\membersection{wxSocketBase::SetFlags}\label{wxsocketbasesetflags}
568
569\func{void}{SetFlags}{\param{wxSocketBase::wxSocketFlags}{ flags}}
570
571Use SetFlags to customize IO operation for this socket. The {\it flags}
572parameter is a combination of flags ORed toghether. The following flags
573can be used:
574
575\twocolwidtha{7cm}
576\begin{twocollist}\itemsep=0pt
577\twocolitem{{\bf wxSOCKET\_NONE}}{Normal functionality.}
578\twocolitem{{\bf wxSOCKET\_NOWAIT}}{Read/write as much data as possible and return immediately.}
579\twocolitem{{\bf wxSOCKET\_WAITALL}}{Wait for all required data to be read/written unless an error occurs.}
580\twocolitem{{\bf wxSOCKET\_BLOCK}}{Block the GUI (do not yield) while reading/writing data.}
581\end{twocollist}
582
583A brief overview on how to use these flags follows.
584
585If no flag is specified (this is the same as {\bf wxSOCKET\_NONE}),
586IO calls will return after some data has been read or written, even
587when the transfer might not be complete. This is the same as issuing
588exactly one blocking low-level call to recv() or send(). Note that
589{\it blocking} here refers to when the function returns, not to whether
590the GUI blocks during this time.
591
592If {\bf wxSOCKET\_NOWAIT} is specified, IO calls will return immediately.
593Read operations will retrieve only available data. Write operations will
594write as much data as possible, depending on how much space is available
595in the output buffer. This is the same as issuing exactly one nonblocking
596low-level call to recv() or send(). Note that {\it nonblocking} here
597refers to when the function returns, not to whether the GUI blocks during
598this time.
599
600If {\bf wxSOCKET\_WAITALL} is specified, IO calls won't return until ALL
601the data has been read or written (or until an error occurs), blocking if
602necessary, and issuing several low level calls if necessary. This is the
603same as having a loop which makes as many blocking low-level calls to
604recv() or send() as needed so as to transfer all the data. Note that
605{\it blocking} here refers to when the function returns, not to whether
606the GUI blocks during this time.
607
608The {\bf wxSOCKET\_BLOCK} flag controls whether the GUI blocks during
609IO operations. If this flag is specified, the socket will not yield
610during IO calls, so the GUI will remain blocked until the operation
611completes. If it is not used, then the application must take extra
612care to avoid unwanted reentrance.
613
614So:
615
616{\bf wxSOCKET\_NONE} will try to read at least SOME data, no matter how much.
617
618{\bf wxSOCKET\_NOWAIT} will always return immediately, even if it cannot
619read or write ANY data.
620
621{\bf wxSOCKET\_WAITALL} will only return when it has read or written ALL
622the data.
623
624{\bf wxSOCKET\_BLOCK} has nothing to do with the previous flags and
625it controls whether the GUI blocks.
626
627%
628% SetNotify
629%
630\membersection{wxSocketBase::SetNotify}\label{wxsocketbasesetnotify}
631
632\func{void}{SetNotify}{\param{wxSocketEventFlags}{ flags}}
633
634SetNotify specifies which socket events are to be sent to the event handler.
635The {\it flags} parameter is a combination of flags ORed toghether. The
636following flags can be used:
637
638\twocolwidtha{7cm}
639\begin{twocollist}\itemsep=0pt
640\twocolitem{{\bf wxSOCKET\_INPUT\_FLAG}}{to receive wxSOCKET\_INPUT}
641\twocolitem{{\bf wxSOCKET\_OUTPUT\_FLAG}}{to receive wxSOCKET\_OUTPUT}
642\twocolitem{{\bf wxSOCKET\_CONNECTION\_FLAG}}{to receive wxSOCKET\_CONNECTION}
643\twocolitem{{\bf wxSOCKET\_LOST\_FLAG}}{to receive wxSOCKET\_LOST}
644\end{twocollist}
645
646For example:
647
648\begin{verbatim}
649 sock.SetNotify(wxSOCKET_INPUT_FLAG | wxSOCKET_LOST_FLAG);
650 sock.Notify(TRUE);
651\end{verbatim}
652
653In this example, the user will be notified about incoming socket data and
654whenever the connection is closed.
655
656For more information on socket events see \helpref{wxSocket events}{wxsocketbase}.
657
658%
659% SetTimeout
660%
661\membersection{wxSocketBase::SetTimeout}\label{wxsocketbasesettimeout}
662
663\func{void}{SetTimeout}{\param{int }{seconds}}
664
665This function sets the default socket timeout in seconds. This timeout
666applies to all IO calls, and also to the \helpref{Wait}{wxsocketbasewait}
667family of functions if you don't specify a wait interval. Initially, the
668default is set to 10 minutes.
669
670%
671% Peek
672%
673\membersection{wxSocketBase::Peek}\label{wxsocketbasepeek}
674
675\func{wxSocketBase\&}{Peek}{\param{void *}{ buffer}, \param{wxUint32}{ nbytes}}
676
677This function peeks a buffer of {\it nbytes} bytes from the socket.
678Peeking a buffer doesn't delete it from the socket input queue.
679
680Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually peeked.
681
682Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
683
684\wxheading{Parameters}
685
686\docparam{buffer}{Buffer where to put peeked data.}
687
688\docparam{nbytes}{Number of bytes.}
689
690\wxheading{Return value}
691
692Returns a reference to the current object.
693
694\wxheading{Remark/Warning}
695
696The exact behaviour of wxSocketBase::Peek depends on the combination
697of flags being used. For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}
698
699\wxheading{See also}
700
701\helpref{wxSocketBase::Error}{wxsocketbaseerror},
702\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
703\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
704\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}
705
706%
707% Read
708%
709\membersection{wxSocketBase::Read}\label{wxsocketbaseread}
710
711\func{wxSocketBase\&}{Read}{\param{void *}{ buffer}, \param{wxUint32}{ nbytes}}
712
713This function reads a buffer of {\it nbytes} bytes from the socket.
714
715Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually read.
716
717Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
718
719\wxheading{Parameters}
720
721\docparam{buffer}{Buffer where to put read data.}
722
723\docparam{nbytes}{Number of bytes.}
724
725\wxheading{Return value}
726
727Returns a reference to the current object.
728
729\wxheading{Remark/Warning}
730
731The exact behaviour of wxSocketBase::Read depends on the combination
732of flags being used. For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}.
733
734\wxheading{See also}
735
736\helpref{wxSocketBase::Error}{wxsocketbaseerror},
737\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
738\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
739\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}
740
741%
742% ReadMsg
743%
744\membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg}
745
746\func{wxSocketBase\&}{ReadMsg}{\param{void *}{ buffer}, \param{wxUint32}{ nbytes}}
747
748This function reads a buffer sent by \helpref{WriteMsg}{wxsocketbasewritemsg}
749on a socket. If the buffer passed to the function isn't big enough, the
750remaining bytes will be discarded. This function always waits for the
751buffer to be entirely filled, unless an error occurs.
752
753Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually read.
754
755Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
756
757\wxheading{Parameters}
758
759\docparam{buffer}{Buffer where to put read data.}
760
761\docparam{nbytes}{Size of the buffer.}
762
763\wxheading{Return value}
764
765Returns a reference to the current object.
766
767\wxheading{Remark/Warning}
768
769wxSocketBase::ReadMsg will behave as if the {\bf wxSOCKET\_WAITALL} flag
770was always set and it will always ignore the {\bf wxSOCKET\_NOWAIT} flag.
771The exact behaviour of ReadMsg depends on the {\bf wxSOCKET\_BLOCK} flag.
772For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}.
773
774\wxheading{See also}
775
776\helpref{wxSocketBase::Error}{wxsocketbaseerror},
777\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
778\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
779\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags},
780\helpref{wxSocketBase::WriteMsg}{wxsocketbasewritemsg}
781
782%
783% Unread
784%
785\membersection{wxSocketBase::Unread}\label{wxsocketbaseunread}
786
787\func{wxSocketBase\&}{Unread}{\param{const void *}{ buffer}, \param{wxUint32}{ nbytes}}
788
789This function unreads a buffer. That is, the data in the buffer is put back
790in the incoming queue. This function is not affected by wxSocket flags.
791
792If you use \helpref{LastCount}{wxsocketbaselastcount}, it will always return {\it nbytes}.
793
794If you use \helpref{Error}{wxsocketbaseerror}, it will always return FALSE.
795
796\wxheading{Parameters}
797
798\docparam{buffer}{Buffer to be unread.}
799
800\docparam{nbytes}{Number of bytes.}
801
802\wxheading{Return value}
803
804Returns a reference to the current object.
805
806\wxheading{See also}
807
808\helpref{wxSocketBase::Error}{wxsocketbaseerror},
809\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
810\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}
811
812%
813% Wait
814%
815\membersection{wxSocketBase::Wait}\label{wxsocketbasewait}
816
817\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
818
819This function waits until one of the following conditions is TRUE. Note
820that it is recommended to use the individual Wait functions to wait for
821the required condition, instead of this one.
822
823\begin{itemize}
824\item The socket becomes readable.
825\item The socket becomes writable.
826\item An ongoing connection request has completed (only for clients)
827\item An incoming connection request has arrived (only for servers)
828\item The connection has been closed.
829\end{itemize}
830
831\wxheading{Parameters}
832
833\docparam{seconds}{Number of seconds to wait.
834If -1, it will wait for the default timeout,
835as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
836
837\docparam{millisecond}{Number of milliseconds to wait.}
838
839\wxheading{Return value}
840
841Returns TRUE when any of the above conditions is satisfied,
842FALSE if the timeout was reached.
843
844\wxheading{See also}
845
846\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait},
847\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept},
848\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost},
849\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread},
850\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite},
851\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect}
852
853%
854% WaitForLost
855%
856\membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost}
857
858\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
859
860This function waits until the connection is lost. This may happen if
861the peer gracefully closes the connection or if the connection breaks.
862
863\wxheading{Parameters}
864
865\docparam{seconds}{Number of seconds to wait.
866If -1, it will wait for the default timeout,
867as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
868
869\docparam{millisecond}{Number of milliseconds to wait.}
870
871\wxheading{Return value}
872
873Returns TRUE if the connection was lost, FALSE if the timeout was reached.
874
875\wxheading{See also}
876
877\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait},
878\helpref{wxSocketBase::Wait}{wxsocketbasewait}
879
880%
881% WaitForRead
882%
883\membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread}
884
885\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
886
887This function waits until the socket is readable. This might mean that
888queued data is available for reading or, for streamed sockets, that
889the connection has been closed, so that a read operation will complete
890immediately without blocking (unless the {\bf wxSOCKET\_WAITALL} flag
891is set, in which case the operation might still block).
892
893\wxheading{Parameters}
894
895\docparam{seconds}{Number of seconds to wait.
896If -1, it will wait for the default timeout,
897as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
898
899\docparam{millisecond}{Number of milliseconds to wait.}
900
901\wxheading{Return value}
902
903Returns TRUE if the socket becomes readable, FALSE on timeout.
904
905\wxheading{See also}
906
907\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait},
908\helpref{wxSocketBase::Wait}{wxsocketbasewait}
909
910%
911% WaitForWrite
912%
913\membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite}
914
915\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
916
917This function waits until the socket becomes writable. This might mean that
918the socket is ready to send new data, or for streamed sockets, that the
919connection has been closed, so that a write operation is guaranteed to
920complete immediately (unless the {\bf wxSOCKET\_WAITALL} flag is set,
921in which case the operation might still block).
922
923\wxheading{Parameters}
924
925\docparam{seconds}{Number of seconds to wait.
926If -1, it will wait for the default timeout,
927as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
928
929\docparam{millisecond}{Number of milliseconds to wait.}
930
931\wxheading{Return value}
932
933Returns TRUE if the socket becomes writable, FALSE on timeout.
934
935\wxheading{See also}
936
937\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait},
938\helpref{wxSocketBase::Wait}{wxsocketbasewait}
939
940%
941% Write
942%
943\membersection{wxSocketBase::Write}\label{wxsocketbasewrite}
944
945\func{wxSocketBase\&}{Write}{\param{const void *}{ buffer}, \param{wxUint32}{ nbytes}}
946
947This function writes a buffer of {\it nbytes} bytes to the socket.
948
949Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually written.
950
951Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
952
953\wxheading{Parameters}
954
955\docparam{buffer}{Buffer with the data to be sent.}
956
957\docparam{nbytes}{Number of bytes.}
958
959\wxheading{Return value}
960
961Returns a reference to the current object.
962
963\wxheading{Remark/Warning}
964
965The exact behaviour of wxSocketBase::Write depends on the combination
966of flags being used. For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}.
967
968\wxheading{See also}
969
970\helpref{wxSocketBase::Error}{wxsocketbaseerror},
971\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
972\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
973\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}
974
975%
976% WriteMsg
977%
978\membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg}
979
980\func{wxSocketBase\&}{WriteMsg}{\param{const void *}{ buffer}, \param{wxUint32}{ nbytes}}
981
982This function writes a buffer of {\it nbytes} bytes from the socket, but it
983writes a short header before so that \helpref{ReadMsg}{wxsocketbasereadmsg}
984knows how much data should it actually read. So, a buffer sent with WriteMsg
985{\bf must} be read with ReadMsg. This function always waits for the entire
986buffer to be sent, unless an error occurs.
987
988Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually written.
989
990Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded.
991
992\wxheading{Parameters}
993
994\docparam{buffer}{Buffer with the data to be sent.}
995
996\docparam{nbytes}{Number of bytes to send.}
997
998\wxheading{Return value}
999
1000Returns a reference to the current object.
1001
1002\wxheading{Remark/Warning}
1003
1004wxSocketBase::WriteMsg will behave as if the {\bf wxSOCKET\_WAITALL} flag
1005was always set and it will always ignore the {\bf wxSOCKET\_NOWAIT} flag.
1006The exact behaviour of WriteMsg depends on the {\bf wxSOCKET\_BLOCK} flag.
1007For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}.
1008
1009\wxheading{See also}
1010
1011\helpref{wxSocketBase::Error}{wxsocketbaseerror},
1012\helpref{wxSocketBase::LastError}{wxsocketbaselasterror},
1013\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount},
1014\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags},
1015\helpref{wxSocketBase::ReadMsg}{wxsocketbasereadmsg}
1016
1017
1018% ---------------------------------------------------------------------------
1019% CLASS wxSocketClient
1020% ---------------------------------------------------------------------------
1021
1022\section{\class{wxSocketClient}}\label{wxsocketclient}
1023
1024\wxheading{Derived from}
1025
1026\helpref{wxSocketBase}{wxsocketbase}
1027
1028\wxheading{Include files}
1029
1030<wx/socket.h>
1031
1032% ---------------------------------------------------------------------------
1033% Members
1034% ---------------------------------------------------------------------------
1035%
1036% wxSocketClient
1037%
1038\membersection{wxSocketClient::wxSocketClient}
1039
1040\func{}{wxSocketClient}{\param{wxSocketFlags}{ flags = wxSOCKET_NONE}}
1041
1042Constructor.
1043
1044\wxheading{Parameters}
1045
1046\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
1047
1048%
1049% ~wxSocketClient
1050%
1051\membersection{wxSocketClient::\destruct{wxSocketClient}}
1052
1053\func{}{\destruct{wxSocketClient}}{\void}
1054
1055Destructor.
1056
1057%
1058% Connect
1059%
1060\membersection{wxSocketClient::Connect}\label{wxsocketclientconnect}
1061
1062\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{bool}{ wait = TRUE}}
1063
1064Connects to a server using the specified address.
1065
1066If {\it wait} is TRUE, Connect will wait until the connection completes.
1067{\bf Warning:} This will block the GUI.
1068
1069If {\it wait} is FALSE, Connect will try to establish the connection and
1070return immediately, without blocking the GUI. When used this way, even if
1071Connect returns FALSE, the connection request can be completed later.
1072To detect this, use \helpref{WaitOnConnect}{wxsocketclientwaitonconnect},
1073or catch {\bf wxSOCKET\_CONNECTION} events (for successful establishment)
1074and {\bf wxSOCKET\_LOST} events (for connection failure).
1075
1076\wxheading{Parameters}
1077
1078\docparam{address}{Address of the server.}
1079
1080\docparam{wait}{If TRUE, waits for the connection to complete.}
1081
1082\wxheading{Return value}
1083
1084Returns TRUE if the connection is established and no error occurs.
1085
1086If {\it wait} was TRUE, and Connect returns FALSE, an error occured
1087and the connection failed.
1088
1089If {\it wait} was FALSE, and Connect returns FALSE, you should still
1090be prepared to handle the completion of this connection request, either
1091with \helpref{WaitOnConnect}{wxsocketclientwaitonconnect} or by watching
1092{\bf wxSOCKET\_CONNECTION} and {\bf wxSOCKET\_LOST} events.
1093
1094\wxheading{See also}
1095
1096\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect},
1097\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
1098\helpref{wxSocketBase::Notify}{wxsocketbasenotify}
1099
1100%
1101% WaitOnConnect
1102%
1103\membersection{wxSocketClient::WaitOnConnect}\label{wxsocketclientwaitonconnect}
1104
1105\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ milliseconds = 0}}
1106
1107Wait until a connection request completes, or until the specified timeout
1108elapses. Use this function after issuing a call to \helpref{Connect}{wxsocketclientconnect}
1109with {\it wait} set to FALSE.
1110
1111\wxheading{Parameters}
1112
1113\docparam{seconds}{Number of seconds to wait.
1114If -1, it will wait for the default timeout,
1115as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
1116
1117\docparam{millisecond}{Number of milliseconds to wait.}
1118
1119\wxheading{Return value}
1120
1121WaitOnConnect returns TRUE if the connection request completes. This
1122does not necessarily mean that the connection was succesfully established;
1123it might also happen that the connection was refused by the peer. Use
1124\helpref{IsConnected}{wxsocketbaseisconnected} to distinguish between
1125these two situations.
1126
1127If the timeout elapses, WaitOnConnect returns FALSE.
1128
1129These semantics allow code like this:
1130
1131\begin{verbatim}
1132// Issue the connection request
1133client->Connect(addr, FALSE);
1134
1135// Wait until the request completes or until we decide to give up
1136bool waitmore = TRUE;
1137while ( !client->WaitOnConnect(seconds, millis) && waitmore )
1138{
1139 // possibly give some feedback to the user,
1140 // and update waitmore if needed.
1141}
1142bool success = client->IsConnected();
1143\end{verbatim}
1144
1145\wxheading{See also}
1146
1147\helpref{wxSocketClient::Connect}{wxsocketclientconnect},
1148\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait},
1149\helpref{wxSocketBase::IsConnected}{wxsocketbaseisconnected}
1150
1151% ---------------------------------------------------------------------------
1152% CLASS: wxSocketEvent
1153% ---------------------------------------------------------------------------
1154\section{\class{wxSocketEvent}}\label{wxsocketevent}
1155
1156This event class contains information about socket events.
1157
1158\wxheading{Derived from}
1159
1160\helpref{wxEvent}{wxevent}
1161
1162\wxheading{Include files}
1163
1164<wx/socket.h>
1165
1166\wxheading{Event table macros}
1167
1168To process a socket event, use these event handler macros to direct input to member
1169functions that take a wxSocketEvent argument.
1170
1171\twocolwidtha{7cm}
1172\begin{twocollist}\itemsep=0pt
1173\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a socket event, supplying the member function.}
1174\end{twocollist}
1175
1176\wxheading{See also}
1177
1178\helpref{wxSocketBase}{wxsocketbase},
1179\helpref{wxSocketClient}{wxsocketclient},
1180\helpref{wxSocketServer}{wxsocketserver}
1181
1182\latexignore{\rtfignore{\wxheading{Members}}}
1183
1184\membersection{wxSocketEvent::wxSocketEvent}
1185
1186\func{}{wxSocketEvent}{\param{int}{ id = 0}}
1187
1188Constructor.
1189
1190\membersection{wxSocketEvent::GetClientData}\label{wxsocketeventgetclientdata}
1191
1192\func{void *}{GetClientData}{\void}
1193
1194Gets the client data of the socket which generated this event, as
1195set with \helpref{wxSocketBase::SetClientData}{wxsocketbasesetclientdata}.
1196
1197\membersection{wxSocketEvent::GetSocket}\label{wxsocketeventgetsocket}
1198
1199\constfunc{wxSocketBase *}{GetSocket}{\void}
1200
1201Returns the socket object to which this event refers to. This makes
1202it possible to use the same event handler for different sockets.
1203
1204\membersection{wxSocketEvent::GetSocketEvent}\label{wxsocketeventgetsocketevent}
1205
1206\constfunc{wxSocketNotify}{GetSocketEvent}{\void}
1207
1208Returns the socket event type.
1209
1210% ---------------------------------------------------------------------------
1211% CLASS: wxSocketServer
1212% ---------------------------------------------------------------------------
1213\section{\class{wxSocketServer}}\label{wxsocketserver}
1214
1215\wxheading{Derived from}
1216
1217\helpref{wxSocketBase}{wxsocketbase}
1218
1219\wxheading{Include files}
1220
1221<wx/socket.h>
1222
1223% ---------------------------------------------------------------------------
1224% Members
1225% ---------------------------------------------------------------------------
1226\latexignore{\rtfignore{\wxheading{Members}}}
1227
1228%
1229% wxSocketServer
1230%
1231\membersection{wxSocketServer::wxSocketServer}\label{wxsocketserverconstr}
1232
1233\func{}{wxSocketServer}{\param{wxSockAddress\&}{ address}, \param{wxSocketFlags}{ flags = wxSOCKET_NONE}}
1234
1235Constructs a new server and tries to bind to the specified {\it address}.
1236Before trying to accept new connections, test whether it succeeded with
1237\helpref{wxSocketBase::Ok}{wxsocketbaseok}.
1238
1239\wxheading{Parameters}
1240
1241\docparam{address}{Specifies the local address for the server (e.g. port number).}
1242
1243\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})}
1244
1245%
1246% ~wxSocketServer
1247%
1248\membersection{wxSocketServer::\destruct{wxSocketServer}}
1249
1250\func{}{\destruct{wxSocketServer}}{\void}
1251
1252Destructor (it doesn't close the accepted connections).
1253
1254%
1255% Accept
1256%
1257\membersection{wxSocketServer::Accept}\label{wxsocketserveraccept}
1258
1259\func{wxSocketBase *}{Accept}{\param{bool}{ wait = TRUE}}
1260
1261Accepts an incoming connection request, and creates a new
1262\helpref{wxSocketBase}{wxsocketbase} object which represents
1263the server-side of the connection.
1264
1265If {\it wait} is TRUE and there are no pending connections to be
1266accepted, it will wait for the next incoming connection to arrive.
1267{\bf Warning:} This will block the GUI.
1268
1269If {\it wait} is FALSE, it will try to accept a pending connection
1270if there is one, but it will always return immediately without blocking
1271the GUI. If you want to use Accept in this way, you can either check for
1272incoming connections with \helpref{WaitForAccept}{wxsocketserverwaitforaccept}
1273or catch {\bf wxSOCKET\_CONNECTION} events, then call Accept once you know
1274that there is an incoming connection waiting to be accepted.
1275
1276\wxheading{Return value}
1277
1278Returns an opened socket connection, or NULL if an error occured or
1279if the {\it wait} parameter was FALSE and there were no pending
1280connections.
1281
1282\wxheading{See also}
1283
1284\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept},
1285\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
1286\helpref{wxSocketBase::Notify}{wxsocketbasenotify},
1287\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith}
1288
1289%
1290% AcceptWith
1291%
1292\membersection{wxSocketServer::AcceptWith}\label{wxsocketserveracceptwith}
1293
1294\func{bool}{AcceptWith}{\param{wxSocketBase\&}{ socket}, \param{bool}{ wait = TRUE}}
1295
1296Accept an incoming connection using the specified socket object.
1297
1298\wxheading{Parameters}
1299
1300\docparam{socket}{Socket to be initialized}
1301
1302\wxheading{Return value}
1303
1304Returns TRUE on success, or FALSE if an error occured or if the
1305{\it wait} parameter was FALSE and there were no pending
1306connections.
1307
1308\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept},
1309\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify},
1310\helpref{wxSocketBase::Notify}{wxsocketbasenotify},
1311\helpref{wxSocketServer::Accept}{wxsocketserveraccept} for a detailed explanation
1312
1313%
1314% WaitForAccept
1315%
1316\membersection{wxSocketServer::WaitForAccept}\label{wxsocketserverwaitforaccept}
1317
1318\func{bool}{WaitForAccept}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}}
1319
1320This function waits for an incoming connection. Use it if you want to call
1321\helpref{Accept}{wxsocketserveraccept} or \helpref{AcceptWith}{wxsocketserveracceptwith}
1322with {\it wait} set to FALSE, to detect when an incoming connection is waiting
1323to be accepted.
1324
1325\wxheading{Parameters}
1326
1327\docparam{seconds}{Number of seconds to wait.
1328If -1, it will wait for the default timeout,
1329as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.}
1330
1331\docparam{millisecond}{Number of milliseconds to wait.}
1332
1333\wxheading{Return value}
1334
1335Returns TRUE if an incoming connection arrived, FALSE if the timeout elapsed.
1336
1337\wxheading{See also}
1338
1339\helpref{wxSocketServer::Accept}{wxsocketserveraccept},
1340\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith},
1341\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait}
1342