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