]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/socket.tex
fix warning
[wxWidgets.git] / docs / latex / wx / socket.tex
index 9bede77f47e97d44f125724e6ed436d185b671f9..096c6a9f18bd5ec6fe52eb88d3cc863451c0f4d5 100644 (file)
@@ -5,8 +5,8 @@
 %% Modified by:
 %% Created:     1999
 %% RCS-ID:      $Id$
 %% Modified by:
 %% Created:     1999
 %% RCS-ID:      $Id$
-%% Copyright:   (c) wxWindows team
-%% License:     wxWindows license
+%% Copyright:   (c) wxWidgets team
+%% License:     wxWidgets license
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \section{\class{wxSocketBase}}\label{wxsocketbase}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \section{\class{wxSocketBase}}\label{wxsocketbase}
 wxSocketBase is the base class for all socket-related objects, and it
 defines all basic IO functionality.
 
 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}
 \wxheading{Derived from}
 
 \helpref{wxObject}{wxobject}
@@ -102,13 +109,13 @@ a \helpref{wxSocketEvent}{wxsocketevent} argument.
 
 \latexignore{\rtfignore{\wxheading{Function groups}}}
 
 
 \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}
 
 
 \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.
 
 
 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}
 
 \helpref{SaveState}{wxsocketbasesavestate}\\
 \helpref{RestoreState}{wxsocketbaserestorestate}
 
-\membersection{Basic IO}
+\membersection{Basic IO}\label{socketbasicio}
 
 Functions that perform basic IO functionality.
 
 
 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}
 
 \helpref{SetFlags}{wxsocketbasesetflags}\\
 \helpref{SetTimeout}{wxsocketbasesettimeout}
 
-\membersection{Handling socket events}
+\membersection{Handling socket events}\label{socketevents}
 
 Functions that allow applications to receive socket events.
 
 
 Functions that allow applications to receive socket events.
 
@@ -169,7 +176,7 @@ Functions that allow applications to receive socket events.
 Callback functions are also available, but they are provided for backwards
 compatibility only. Their use is strongly discouraged in favour of events,
 and should be considered deprecated. Callbacks may be unsupported in future
 Callback functions are also available, but they are provided for backwards
 compatibility only. Their use is strongly discouraged in favour of events,
 and should be considered deprecated. Callbacks may be unsupported in future
-releases of wxWindows.
+releases of wxWidgets.
 
 \helpref{Callback}{wxsocketbasecallback}\\
 \helpref{CallbackData}{wxsocketbasecallbackdata}
 
 \helpref{Callback}{wxsocketbasecallback}\\
 \helpref{CallbackData}{wxsocketbasecallbackdata}
@@ -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\_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.
 \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.
 
 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.
 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\_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
 %
 %
 % SetNotify
 %
@@ -1046,7 +1063,7 @@ For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbaseset
 %
 % wxSocketClient
 %
 %
 % wxSocketClient
 %
-\membersection{wxSocketClient::wxSocketClient}
+\membersection{wxSocketClient::wxSocketClient}\label{wxsocketclientctor}
 
 \func{}{wxSocketClient}{\param{wxSocketFlags}{ flags = wxSOCKET\_NONE}}
 
 
 \func{}{wxSocketClient}{\param{wxSocketFlags}{ flags = wxSOCKET\_NONE}}
 
@@ -1059,7 +1076,7 @@ Constructor.
 %
 % ~wxSocketClient
 %
 %
 % ~wxSocketClient
 %
-\membersection{wxSocketClient::\destruct{wxSocketClient}}
+\membersection{wxSocketClient::\destruct{wxSocketClient}}\label{wxsocketclientdtor}
 
 \func{}{\destruct{wxSocketClient}}{\void}
 
 
 \func{}{\destruct{wxSocketClient}}{\void}
 
@@ -1192,7 +1209,7 @@ to member functions that take a wxSocketEvent argument.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxSocketEvent::wxSocketEvent}
+\membersection{wxSocketEvent::wxSocketEvent}\label{wxsocketeventctor}
 
 \func{}{wxSocketEvent}{\param{int}{ id = 0}}
 
 
 \func{}{wxSocketEvent}{\param{int}{ id = 0}}