1 \section{\class{wxSocketBase
}}\label{wxsocketbase
}
3 \wxheading{Derived from
}
5 \helpref{wxEvtHandler
}{wxevthandler
}
7 % ---------------------------------------------------------------------------
9 % ---------------------------------------------------------------------------
10 \wxheading{Event handling
}
12 To process events from a socket, use the following event handler macro to direct
14 functions that take a
\helpref{wxSocketEvent
}{wxsocketevent
} argument.
17 \begin{twocollist
}\itemsep=
0pt
18 \twocolitem{{\bf EVT
\_SOCKET(id, func)
}}{A socket event occured.
}
21 % ---------------------------------------------------------------------------
23 % ---------------------------------------------------------------------------
27 \helpref{wxSocketEvent
}{wxsocketevent
}
28 \helpref{wxSocketClient
}{wxsocketclient
}
29 \helpref{wxSocketServer
}{wxsocketserver
}
31 % ---------------------------------------------------------------------------
33 % ---------------------------------------------------------------------------
35 \latexignore{\rtfignore{\wxheading{Members
}}}
37 \membersection{wxSocketBase::wxSocketBase
}
38 \func{}{wxSocketBase
}{\void}
40 Default constructor but don't use it, you must use
\helpref{wxSocketClient
}{wxsocketclient
}
41 or
\helpref{wxSocketServer
}{wxsocketserver
}.
43 \membersection{wxSocketBase::
\destruct{wxSocketBase
}}
45 \func{}{\destruct{wxSocketBase
}}{\void}
47 Destroys the wxSocketBase object.
49 % ---------------------------------------------------------------------------
51 % ---------------------------------------------------------------------------
53 \membersection{wxSocketBase::Ok
}\label{wxsocketbaseok
}
55 \constfunc{bool
}{Ok
}{\void}
57 Returns TRUE if the socket is initialized and ready and FALSE in other
60 \membersection{wxSocketBase::Error
}\label{wxsocketbaseerror
}
62 \constfunc{bool
}{Error
}{\void}
64 Returns TRUE if an error occured.
66 \membersection{wxSocketBase::IsConnected
}\label{wxsocketbaseconnected
}
68 \constfunc{bool
}{IsConnected
}{\void}
70 Returns TRUE if the socket is connected.
72 \membersection{wxSocketBase::IsData
}\label{wxsocketbaseerror
}
74 \constfunc{bool
}{IsData
}{\void}
76 Returns TRUE if some data is arrived on the socket.
78 \membersection{wxSocketBase::IsDisconnected
}\label{wxsocketbasedisconnected
}
80 \constfunc{bool
}{IsDisconnected
}{\void}
82 Returns TRUE if the socket is disconnected.
84 \membersection{wxSocketBase::IsNoWait
}\label{wxsocketbasenowait
}
86 \constfunc{bool
}{IsNoWait
}{\void}
88 Returns TRUE if the socket mustn't wait.
90 \membersection{wxSocketBase::LastCount
}\label{wxsocketbaselastcount
}
92 \constfunc{size
\_t}{LastCount
}{\void}
94 Returns the number of bytes read or written by the last IO call.
96 \membersection{wxSocketBase::LastError
}\label{wxsocketbaselasterror
}
98 \constfunc{int
}{LastError
}{\void}
100 Returns an error in the errno format (see your C programmer's guide).
102 % ---------------------------------------------------------------------------
104 % ---------------------------------------------------------------------------
110 \membersection{wxSocketBase::Peek
}\label{wxsocketbasepeek
}
112 \func{wxSocketBase\&
}{Peek
}{\param{char *
}{ buffer
},
\param{size
\_t}{ nbytes
}}
114 This function peeks a buffer of
{\it nbytes
} bytes from the socket. Peeking a buffer
115 doesn't delete it from the system socket in-queue.
117 \wxheading{Parameters
}
119 \docparam{buffer
}{Buffer where to put peeked data.
}
120 \docparam{nbytes
}{Number of bytes.
}
122 \wxheading{Returns value
}
123 Returns a reference to the current object.
127 \helpref{wxSocketBase::Error
}{wxsocketbaserror
},
128 \helpref{wxSocketBase::LastCount
}{wxsocketbaselastcount
},
129 \helpref{wxSocketBase::LastError
}{wxsocketbaselasterror
}
135 \membersection{wxSocketBase::Read
}\label{wxsocketbaseread
}
137 \func{wxSocketBase\&
}{Read
}{\param{char *
}{ buffer
},
\param{size
\_t}{ nbytes
}}
139 This function reads a buffer of
{\it nbytes
} bytes from the socket.
141 \wxheading{Parameters
}
143 \docparam{buffer
}{Buffer where to put read data.
}
144 \docparam{nbytes
}{Number of bytes.
}
146 \wxheading{Returns value
}
147 Returns a reference to the current object.
151 \helpref{wxSocketBase::Error
}{wxsocketbaserror
},
152 \helpref{wxSocketBase::LastCount
}{wxsocketbaselastcount
},
153 \helpref{wxSocketBase::LastError
}{wxsocketbaselasterror
}
159 \membersection{wxSocketBase::Write
}\label{wxsocketbasewrite
}
161 \func{wxSocketBase\&
}{Write
}{\param{const char *
}{ buffer
},
\param{size
\_t}{ nbytes
}}
163 This function writes a buffer of
{\it nbytes
} bytes from the socket.
165 \wxheading{Parameters
}
167 \docparam{buffer
}{Buffer where to get the data to write.
}
168 \docparam{nbytes
}{Number of bytes.
}
170 \wxheading{Returns value
}
171 Returns a reference to the current object.
175 \helpref{wxSocketBase::Error
}{wxsocketbaserror
},
176 \helpref{wxSocketBase::LastCount
}{wxsocketbaselastcount
},
177 \helpref{wxSocketBase::LastError
}{wxsocketbaselasterror
}
183 \membersection{wxSocketBase::WriteMsg
}\label{wxsocketbasewritemsg
}
185 \func{wxSocketBase\&
}{WriteMsg
}{\param{const char *
}{ buffer
},
\param{size
\_t}{ nbytes
}}
187 This function writes a buffer of
{\it nbytes
} bytes from the socket. But it
188 writes a short header before so that ReadMsg can alloc the right size for
189 the buffer. So a buffer sent with WriteMsg
{\bf must
} be read with ReadMsg.
191 \wxheading{Parameters
}
193 \docparam{buffer
}{Buffer where to put data peeked.
}
194 \docparam{nbytes
}{Number of bytes.
}
196 \wxheading{Returns value
}
197 Returns a reference to the current object.
201 \helpref{wxSocketBase::Error
}{wxsocketbaserror
},
202 \helpref{wxSocketBase::LastCount
}{wxsocketbaselastcount
},
203 \helpref{wxSocketBase::LastError
}{wxsocketbaselasterror
},
204 \helpref{wxSocketBase::ReadMsg
}{wxsocketbasereadmsg
}
210 \membersection{wxSocketBase::ReadMsg
}\label{wxsocketbasereadmsg
}
212 \func{wxSocketBase\&
}{ReadMsg
}{\param{char *
}{ buffer
},
\param{size
\_t}{ nbytes
}}
214 This function reads a buffer sent by WriteMsg on a socket. If the buffer passed
215 to the function isn't big enough, the function filled it and then discard the
216 bytes left. This function always wait for the buffer to be entirely filled.
218 \wxheading{Parameters
}
220 \docparam{buffer
}{Buffer where to put read data.
}
221 \docparam{nbytes
}{Number of bytes allocated for the buffer.
}
223 \wxheading{Returns value
}
224 Returns a reference to the current object.
228 \helpref{wxSocketBase::Error
}{wxsocketbaserror
},
229 \helpref{wxSocketBase::LastCount
}{wxsocketbaselastcount
},
230 \helpref{wxSocketBase::LastError
}{wxsocketbaselasterror
},
231 \helpref{wxSocketBase::WriteMsg
}{wxsocketbasewritemsg
}
237 \membersection{wxSocketBase::UnRead
}\label{wxsocketbaseunread
}
239 \func{wxSocketBase\&
}{UnRead
}{\param{const char *
}{ buffer
},
\param{size
\_t}{ nbytes
}}
241 This function unreads a buffer. It means that the buffer is put in the top
242 of the incoming queue. But, it is put also at the end of all unread buffers.
243 It is useful for sockets because we can't seek it.
245 \wxheading{Parameters
}
247 \docparam{buffer
}{Buffer to be unread.
}
248 \docparam{nbytes
}{Number of bytes.
}
250 \wxheading{Returns value
}
251 Returns a reference to the current object.
255 \helpref{wxSocketBase::Error
}{wxsocketbaserror
},
256 \helpref{wxSocketBase::LastCount
}{wxsocketbaselastcount
},
257 \helpref{wxSocketBase::LastError
}{wxsocketbaselasterror
}
263 \membersection{wxSocketBase::Discard
}\label{wxsocketbasediscard
}
265 \func{wxSocketBase\&
}{Discard
}{\void}
267 This function simply deletes all bytes in the incoming queue. This function
270 % ---------------------------------------------------------------------------
272 % ---------------------------------------------------------------------------
273 \membersection{wxSocketBase::Wait
}\label{wxsocketbasewait
}
274 \func{bool
}{Wait
}{\param{long
}{ seconds = -
1},
\param{long
}{ microsecond =
0}}
276 This function waits for an event: it could be an incoming byte, the possibility
277 for the client to write, a lost connection, an incoming connection, an
278 established connection.
280 \wxheading{Parameters
}
282 \docparam{seconds
}{Number of seconds to wait. By default, it waits infinitely.
}
283 \docparam{microsecond
}{Number of microseconds to wait.
}
285 \wxheading{Return value:
}
287 Returns TRUE if an event occured, FALSE if the timeout was reached.
291 \helpref{wxSocketBase::WaitForRead
}{wxsocketbasewaitforread
},
292 \helpref{wxSocketBase::WaitForWrite
}{wxsocketbasewaitforwrite
},
293 \helpref{wxSocketBase::WaitForLost
}{wxsocketbasewaitforlost
}
299 \membersection{wxSocketBase::WaitForRead
}\label{wxsocketbasewaitforread
}
300 \func{bool
}{WaitForRead
}{\param{long
}{ seconds = -
1},
\param{long
}{ microsecond =
0}}
302 This function waits for a read event.
304 \wxheading{Parameters
}
306 \docparam{seconds
}{Number of seconds to wait. By default, it waits infinitely.
}
307 \docparam{microsecond
}{Number of microseconds to wait.
}
309 \wxheading{Return value:
}
311 Returns TRUE if a byte arrived, FALSE if the timeout was reached.
315 \helpref{wxSocketBase::Wait
}{wxsocketbasewait
},
316 \helpref{wxSocketBase::WaitForWrite
}{wxsocketbasewaitforwrite
},
317 \helpref{wxSocketBase::WaitForLost
}{wxsocketbasewaitforlost
}
323 \membersection{wxSocketBase::WaitForWrite
}\label{wxsocketbasewaitforwrite
}
324 \func{bool
}{WaitForWrite
}{\param{long
}{ seconds = -
1},
\param{long
}{ microsecond =
0}}
326 This function waits for a write event.
328 \wxheading{Parameters
}
330 \docparam{seconds
}{Number of seconds to wait. By default, it waits infinitely.
}
331 \docparam{microsecond
}{Number of microseconds to wait.
}
333 \wxheading{Return value:
}
335 Returns TRUE if a write event occured, FALSE if the timeout was reached.
339 \helpref{wxSocketBase::Wait
}{wxsocketbasewait
},
340 \helpref{wxSocketBase::WaitForRead
}{wxsocketbasewaitforread
},
341 \helpref{wxSocketBase::WaitForLost
}{wxsocketbasewaitforlost
}
347 \membersection{wxSocketBase::WaitForLost
}\label{wxsocketbasewaitforlost
}
348 \func{bool
}{Wait
}{\param{long
}{ seconds = -
1},
\param{long
}{ microsecond =
0}}
350 This function waits for a "lost" event. For instance, the peer may have closed
351 the connection, or the connection may have been broken.
353 \wxheading{Parameters
}
355 \docparam{seconds
}{Number of seconds to wait. By default, it waits infinitely.
}
356 \docparam{microsecond
}{Number of microseconds to wait.
}
358 \wxheading{Return value:
}
360 Returns TRUE if a "lost" event occured, FALSE if the timeout was reached.
364 \helpref{wxSocketBase::WaitForRead
}{wxsocketbasewaitforread
},
365 \helpref{wxSocketBase::WaitForWrite
}{wxsocketbasewaitforwrite
},
366 \helpref{wxSocketBase::WaitForLost
}{wxsocketbasewaitforlost
}
368 % ---------------------------------------------------------------------------
370 % ---------------------------------------------------------------------------
375 \membersection{wxSocketBase::SaveState
}\label{wxsocketbasesavestate
}
376 \func{void
}{SaveState
}{\void}
378 This function saves the current state of the socket object in a stack:
379 actually it saves all flags and the state of the asynchronous callbacks.
383 \helpref{wxSocketBase::RestoreState
}{wxsocketbaserestorestate
}
389 \membersection{wxSocketBase::RestoreState
}\label{wxsocketbaserestorestate
}
391 \func{void
}{RestoreState
}{\void}
393 This function restores a previously saved state.
397 \helpref{wxSocketBase::SaveState
}{wxsocketbasesavestate
}
399 % ---------------------------------------------------------------------------
401 % ---------------------------------------------------------------------------
403 \membersection{wxSocketBase::SetEventHandler
}{wxsocketbaseseteventhandler
}
404 \func{void
}{SetEventHandler
}{\param{wxEvtHandler\&
}{ evt
\_hdlr},
\param{int
}{ id = -
1}}
406 Sets an event handler to be called when a socket event occured.
408 \wxheading{Parameters
}
410 \docparam{evt
\_hdlr}{Specifies the event handler you want to use.
}
411 \docparam{id
}{The id of socket event.
}
415 \helpref{wxSocketEvent
}{wxsocketevent
}
417 % ---------------------------------------------------------------------------
418 % CLASS wxSocketClient
419 % ---------------------------------------------------------------------------
421 \section{\class{wxSocketClient
}}\label{wxsocketclient
}
423 \wxheading{Derived from
}
425 \helpref{wxSocketBase
}{wxsocketbase
}
427 % ---------------------------------------------------------------------------
429 % ---------------------------------------------------------------------------
435 \membersection{wxSocketClient::wxSocketClient
}
436 \func{}{wxSocketClient
}{\param{wxSockFlags
}{ flags = wxSocketBase::NONE
}}
438 Constructs a new wxSocketClient.
439 {\bf Warning !
} The created needs to be registered to a socket handler (See
\helpref{wxSocketHandler
}{wxsockethandler
}).
441 \wxheading{Parameters
}
443 \docparam{flags
}{Socket flags (See
\helpref{wxSocketBase::SetFlags
}{wxsocketbasesetflags
})
}
449 \membersection{wxSocketClient::
\destruct{wxSocketClient
}}
450 \func{}{\destruct{wxSocketClient
}}{\void}
452 Destructs a wxSocketClient object.
458 \membersection{wxSocketClient::Connect
}{wxsocketclientconnect
}
459 \func{bool
}{Connect
}{\param{wxSockAddress\&
}{ address
},
\param{bool
}{ wait = TRUE
}}
461 Connects to a server using the specified address. If
{\it wait
} is TRUE, Connect
462 will wait for the socket ready to send or receive data.
464 \wxheading{Parameters
}
466 \docparam{address
}{Address of the server.
}
467 \docparam{wait
}{If true, waits for the connection to be ready.
}
469 \wxheading{Return value
}
471 Returns TRUE if the connection is established and no error occurs.
475 \helpref{wxSocketClient::WaitOnConnect
}{wxsocketclientwaitonconnect
}
481 \membersection{wxSocketClient::WaitOnConnect
}
482 \func{bool
}{WaitOnConnect
}{\param{long
}{ seconds = -
1},
\param{long
}{ microseconds =
0}}
484 Wait for a "connect" event.
488 \helpref{wxSocketBase::Wait
}{wxsocketbasewait
} for a detailed description.
490 % ---------------------------------------------------------------------------
491 % CLASS: wxSocketServer
492 % ---------------------------------------------------------------------------
494 \section{\class{wxSocketServer
}}\label{wxsocketserver
}
496 \wxheading{Derived from
}
498 \helpref{wxSocketBase
}{wxsocketbase
}
500 % ---------------------------------------------------------------------------
502 % ---------------------------------------------------------------------------
504 \latexignore{\rtfignore{\wxheading{Members
}}}
510 \membersection{wxSocketServer::wxSocketServer
}{wxsocketserverconstr
}
511 \func{}{wxSocketServer
}{\param{wxSockAddress\&
}{ address
},
\param{wxSockFlags
}{ flags = wxSocketBase::NONE
}}
513 Constructs a new wxSocketServer.
514 {\bf Warning !
} The created object needs to be registered to a socket handler
515 (See
\helpref{wxSocketHandler
}{wxsockethandler
}).
517 \wxheading{Parameters
}
519 \docparam{address
}{Specifies the local address for the server (e.g. port number).
}
520 \docparam{flags
}{Socket flags (See
\helpref{wxSocketBase::SetFlags
}{wxsocketbase
527 \membersection{wxSocketServer::
\destruct{wxSocketServer
}}
528 \func{}{\destruct{wxSocketServer
}}{\void}
530 Destructs a wxSocketServer object (it doesn't close the accepted connection).
536 \membersection{wxSocketServer::Accept
}
537 \func{wxSocketBase *
}{Accept
}{\void}
539 Creates a new object wxSocketBase and accepts an incoming connection.
{\bf Warning !
} This function will block the GUI.
541 \wxheading{Return value
}
543 Returns an opened socket connection.
547 \helpref{wxSocketServer::AcceptWith
}{wxsocketserveracceptwith
}
553 \membersection{wxSocketServer::AcceptWith
}{wxsocketserveracceptwith
}
554 \func{bool
}{AcceptWith
}{\param{wxSocketBase\&
}{ socket
}}
556 Accept an incoming connection using the specified socket object.
557 This is useful when someone wants to inherit wxSocketBase.
559 \wxheading{Parameters
}
561 \docparam{socket
}{Socket to be initialized
}
563 \wxheading{Return value
}
565 Returns TRUE if no error occurs, else FALSE.
568 % ---------------------------------------------------------------------------
569 % CLASS: wxSocketHandler
570 % ---------------------------------------------------------------------------
572 \section{\class{wxSocketHandler
}}\label{wxsockethandler
}
574 \wxheading{Derived from
}
576 \helpref{wxObject
}{wxobject
}
578 % ---------------------------------------------------------------------------
580 % ---------------------------------------------------------------------------
582 \latexignore{\rtfignore{\wxheading{Members
}}}
587 \membersection{wxSocketHandler::wxSocketHandler
}
588 \func{}{wxSocketHandler
}{\void}
590 Constructs a new wxSocketHandler.
591 It is advised to use
\helpref{wxSocketHandler::Master
}{wxsockethandlermaster
}
592 to get a socket handler. But creating a socket handler is useful to group
599 \membersection{wxSocketHandler::
\destruct{wxSocketHandler
}}
600 \func{}{\destruct{wxSocketHandler
}}{\void}
602 Destructs a wxSocketHandler object.
608 \membersection{wxSocketHandler::Register
}
609 \func{void
}{Register
}{\param{wxSocketBase *
}{socket
}}
611 Register a socket: if it is already registered in this handler it will just
614 \wxheading{Parameters
}
616 \docparam{socket
}{Socket to be registered.
}
622 \membersection{wxSocketHandler::UnRegister
}
623 \func{void
}{UnRegister
}{\param{wxSocketBase *
}{socket
}}
625 UnRegister a socket: if it isn't registered in this handler it will just
628 \wxheading{Parameters
}
630 \docparam{socket
}{Socket to be unregistered.
}
636 \membersection{wxSocketHandler::Count
}
637 \constfunc{unsigned long
}{Count
}{\void}
639 Returns the number of sockets registered in the handler.
641 \wxheading{Return value
}
643 Number of sockets registered.
649 \membersection{wxSocketHandler::CreateServer
}
650 \func{wxSocketServer *
}{CreateServer
}{\param{wxSockAddress\&
}{ address
},
\param{wxSocketBase::wxSockFlags
}{ flags = wxSocketbase::NONE
}}
652 Creates a new wxSocketServer object. The object is automatically registered
653 to the current socket handler.
654 For a detailed description of the parameters, see
\helpref{wxSocketServer::wxSocketServer
}{wxsocketserverconstr
}.
656 \wxheading{Return value
}
658 Returns a new socket server.
664 \membersection{wxSocketHandler::CreateClient
}
665 \func{wxSocketServer *
}{CreateClient
}{\param{wxSocketBase::wxSockFlags
}{ flags = wxSocketbase::NONE
}}
667 Creates a new wxSocketClient object. The object is automatically registered
668 to the current socket handler.
669 For a detailed description of the parameters, see
\helpref{wxSocketClient::Connect
}{wxsocketclientconnect
}.
671 \wxheading{Return value
}
673 Returns a new socket client.
679 \membersection{wxSocketHandler::Master
}
680 \func{static wxSocketHandler\&
}{Master
}{\void}
682 Returns a default socket handler.
687 \membersection{wxSocketHandler::Wait
}
688 \func{int
}{Wait
}{\param{long
}{ seconds
},
\param{long
}{ microseconds
}}
690 Wait for an event on all registered sockets.
692 \wxheading{Parameters
}
694 \docparam{seconds
}{Number of seconds to wait. By default, it waits infinitely.
}
695 \docparam{microsecond
}{Number of microseconds to wait.
}
697 \wxheading{Return value
}
699 Returns
0 if a timeout occured, else the number of events detected.
703 \helpref{wxSocketBase::Wait
}{wxsockebasewait
}
708 \membersection{wxSocketHandler::YieldSock
}
709 \func{void
}{YieldSock
}{\void}
711 Execute pending requests in all registered sockets.