X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fc2171bd4c660b8554dae2a1cbf34ff09f3032a6..5125ea1f83ee0b64c6e26c17823f6e389f7b633f:/docs/latex/wx/socket.tex diff --git a/docs/latex/wx/socket.tex b/docs/latex/wx/socket.tex index 41936b4a60..096c6a9f18 100644 --- a/docs/latex/wx/socket.tex +++ b/docs/latex/wx/socket.tex @@ -14,6 +14,13 @@ wxSocketBase is the base class for all socket-related objects, and it defines all basic IO functionality. +Note: (Workaround for implementation limitation for wxWidgets up to 2.5.x) +If you want to use sockets or derived classes such as wxFTP in a secondary thread, +call wxSocketBase::Initialize() (undocumented) from the main thread before creating +any sockets - in wxApp::OnInit for example. +See http://wiki.wxwidgets.org/wiki.pl?WxSocket or +http://www.litwindow.com/knowhow/knowhow.html for more details. + \wxheading{Derived from} \helpref{wxObject}{wxobject} @@ -102,13 +109,13 @@ a \helpref{wxSocketEvent}{wxsocketevent} argument. \latexignore{\rtfignore{\wxheading{Function groups}}} -\membersection{Construction and destruction} +\membersection{Construction and destruction}\label{socketconstruction} \helpref{wxSocketBase}{wxsocketbaseconstruct}\\ \helpref{\destruct{wxSocketBase}}{wxsocketbasedestruct}\\ \helpref{Destroy}{wxsocketbasedestroy} -\membersection{Socket state} +\membersection{Socket state}\label{socketstate} Functions to retrieve current state and miscellaneous info. @@ -124,7 +131,7 @@ Functions to retrieve current state and miscellaneous info. \helpref{SaveState}{wxsocketbasesavestate}\\ \helpref{RestoreState}{wxsocketbaserestorestate} -\membersection{Basic IO} +\membersection{Basic IO}\label{socketbasicio} Functions that perform basic IO functionality. @@ -156,7 +163,7 @@ Functions that allow applications to customize socket IO as needed. \helpref{SetFlags}{wxsocketbasesetflags}\\ \helpref{SetTimeout}{wxsocketbasesettimeout} -\membersection{Handling socket events} +\membersection{Handling socket events}\label{socketevents} Functions that allow applications to receive socket events. @@ -586,6 +593,7 @@ The following flags can be used: \twocolitem{{\bf wxSOCKET\_NOWAIT}}{Read/write as much data as possible and return immediately.} \twocolitem{{\bf wxSOCKET\_WAITALL}}{Wait for all required data to be read/written unless an error occurs.} \twocolitem{{\bf wxSOCKET\_BLOCK}}{Block the GUI (do not yield) while reading/writing data.} +\twocolitem{{\bf wxSOCKET\_REUSEADDR}}{Allows the use of an in-use port (wxServerSocket only)} \end{twocollist} A brief overview on how to use these flags follows. @@ -619,6 +627,13 @@ during IO calls, so the GUI will remain blocked until the operation completes. If it is not used, then the application must take extra care to avoid unwanted reentrance. +The {\bf wxSOCKET\_REUSEADDR} flag controls the use of the SO\_REUSEADDR standard +setsockopt() flag. This flag allows the socket to bind to a port that is already in use. +This is mostly used on UNIX-based systems to allow rapid starting and stopping of a server - +otherwise you may have to wait several minutes for the port to become available. +This option can have suprising platform dependent behavior, check the documentation for +your platforms implementation of setsockopt(). + So: {\bf wxSOCKET\_NONE} will try to read at least SOME data, no matter how much. @@ -632,6 +647,8 @@ the data. {\bf wxSOCKET\_BLOCK} has nothing to do with the previous flags and it controls whether the GUI blocks. +{\bf wxSOCKET\_REUSEADDR} controls special platform-specific behavior for wxServerSocket. + % % SetNotify % @@ -1046,7 +1063,7 @@ For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbaseset % % wxSocketClient % -\membersection{wxSocketClient::wxSocketClient} +\membersection{wxSocketClient::wxSocketClient}\label{wxsocketclientctor} \func{}{wxSocketClient}{\param{wxSocketFlags}{ flags = wxSOCKET\_NONE}} @@ -1059,7 +1076,7 @@ Constructor. % % ~wxSocketClient % -\membersection{wxSocketClient::\destruct{wxSocketClient}} +\membersection{wxSocketClient::\destruct{wxSocketClient}}\label{wxsocketclientdtor} \func{}{\destruct{wxSocketClient}}{\void} @@ -1192,7 +1209,7 @@ to member functions that take a wxSocketEvent argument. \latexignore{\rtfignore{\wxheading{Members}}} -\membersection{wxSocketEvent::wxSocketEvent} +\membersection{wxSocketEvent::wxSocketEvent}\label{wxsocketeventctor} \func{}{wxSocketEvent}{\param{int}{ id = 0}}