%% Created: 1999
%% RCS-ID: $Id$
%% Copyright: (c) wxWidgets team
-%% License: wxWidgets license
+%% License: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\class{wxSocketBase}}\label{wxsocketbase}
\helpref{GetFlags}{wxsocketbasegetflags}\\
\helpref{SetFlags}{wxsocketbasesetflags}\\
-\helpref{SetTimeout}{wxsocketbasesettimeout}
+\helpref{SetTimeout}{wxsocketbasesettimeout}\\
+\helpref{SetLocal}{wxsocketbasesetlocal}\\
\membersection{Handling socket events}\label{socketevents}
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().
+wxSOCKET\_REUSEADDR can also be used with socket clients to (re)bind to a particular local port
+for an outgoing connection.
+This option can have surprising platform dependent behavior, so check the documentation for
+your platform's implementation of setsockopt(). Note that on BSD-based systems (e.g. Mac OS X),
+use of wxSOCKET\_REUSEADDR implies SO\_REUSEPORT in addition to SO\_REUSEADDR to be consistent
+with Windows.
So:
{\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.
+{\bf wxSOCKET\_REUSEADDR} controls special platform-specific behavior for
+reusing local addresses/ports.
+
+%
+% SetLocal
+%
+\membersection{wxSocketBase::SetLocal}\label{wxsocketbasesetlocal}
+
+\func{bool}{SetLocal}{\param{wxIPV4address\&}{ local}}
+
+This function allows you to set the local address and port,
+useful when an application needs to reuse a particular port. When
+a local port is set for a \helpref{wxSocketClient}{wxsocketclient},
+{\bf bind} will be called before {\bf connect}.
%
% SetNotify
\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{bool}{ wait = true}}
+\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{wxSockAddress\&}{ local},
+\param{bool}{ wait = true}}
+
Connects to a server using the specified address.
If {\it wait} is true, Connect will wait until the connection
\docparam{address}{Address of the server.}
+\docparam{local}{Bind to the specified local address and port before connecting.
+The local address and port can also be set using \helpref{SetLocal}{wxsocketbasesetlocal},
+and then using the 2-parameter Connect method.}
+
\docparam{wait}{If true, waits for the connection to complete.}
\wxheading{Return value}