// Purpose: interface of wxIP*address, wxSocket* classes
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
Returns the length of the socket address.
*/
int SockAddrLen();
+
+ /**
+ Returns the pointer to the low-level representation of the address.
+
+ This can be used to pass socket address information to a 3rd party
+ library.
+
+ @return
+ Pointer to a sockaddr-derived struct.
+ */
+ const sockaddr *GetAddressData() const;
+
+ /**
+ Returns the length of the buffer retrieved by GetAddressData().
+
+ @return
+ The size of the sockaddr-derived struct corresponding to this
+ address.
+ */
+ int GetAddressDataLen() const;
};
@b 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
+ This option can have surprising platform dependent behaviour, so check the
documentation for your platform's implementation of setsockopt().
Note that on BSD-based systems(e.g. Mac OS X), use of
the data.
- @b wxSOCKET_BLOCK has nothing to do with the previous flags and
it controls whether the GUI blocks.
- - @b wxSOCKET_REUSEADDR controls special platform-specific behavior for
+ - @b wxSOCKET_REUSEADDR controls special platform-specific behaviour for
reusing local addresses/ports.
*/
enum
wxSOCKET_NOWAIT = 1, ///< Read/write as much data as possible and return immediately.
wxSOCKET_WAITALL = 2, ///< Wait for all required data to be read/written unless an error occurs.
wxSOCKET_BLOCK = 4, ///< Block the GUI (do not yield) while reading/writing data.
- wxSOCKET_REUSEADDR = 8, ///< Allows the use of an in-use port (wxServerSocket only)
+ wxSOCKET_REUSEADDR = 8, ///< Allows the use of an in-use port.
wxSOCKET_BROADCAST = 16, ///< Switches the socket to broadcast mode
wxSOCKET_NOBIND = 32 ///< Stops the socket from being bound to a specific
///< adapter (normally used in conjunction with
does anything) but you must call Shutdown() exactly once for every call
to Initialize().
+ This function should only be called from the main thread.
+
@return
@true if the sockets can be used, @false if the initialization
failed and sockets are not available at all.
This function undoes the call to Initialize() and must be called after
every successful call to Initialize().
+
+ This function should only be called from the main thread, just as
+ Initialize().
*/
static void Shutdown();