1\section{\class{wxClient}}\label{wxclient} 2 3A wxClient object represents the client part of a client-server 4DDE-like (Dynamic Data Exchange) conversation. The actual 5DDE-based implementation using wxDDEClient is available on Windows 6only, but a platform-independent, socket-based version of this 7API is available using wxTCPClient, which has the same API. 8 9To create a client which can communicate with a suitable server, 10you need to derive a class from wxConnection and another from 11wxClient. The custom wxConnection class will intercept 12communications in a `conversation' with a server, and the custom 13wxClient is required so that a user-overridden 14\helpref{wxClient::OnMakeConnection}{wxclientonmakeconnection} 15member can return a wxConnection of the required class, when a 16connection is made. Look at the IPC sample and the 17\helpref{Interprocess communications overview}{ipcoverview} for 18an example of how to do this. 19 20\wxheading{Derived from} 21 22wxClientBase\\ 23\helpref{wxObject}{wxobject} 24 25\wxheading{Include files} 26 27<wx/ipc.h> 28 29\wxheading{See also} 30 31\helpref{wxServer}{wxserver}, 32\helpref{wxConnection}{wxconnection}, \helpref{Interprocess communications overview}{ipcoverview} 33 34\latexignore{\rtfignore{\wxheading{Members}}} 35 36\membersection{wxClient::wxClient}\label{wxclientctor} 37 38\func{}{wxClient}{\void} 39 40Constructs a client object. 41 42\membersection{wxClient::MakeConnection}\label{wxclientmakeconnection} 43 44\func{wxConnectionBase *}{MakeConnection}{\param{const wxString\& }{host}, \param{const wxString\& }{service}, \param{const wxString\& }{topic}} 45 46Tries to make a connection with a server by host (machine name 47under UNIX - use 'localhost' for same machine; ignored when using 48native DDE in Windows), service name and topic string. If the 49server allows a connection, a wxConnection object will be 50returned. The type of wxConnection returned can be altered by 51overriding the 52\helpref{wxClient::OnMakeConnection}{wxclientonmakeconnection} 53member to return your own derived connection object. 54 55Under Unix, the service name may be either an integer port 56identifier in which case an Internet domain socket will be used 57for the communications, or a valid file name (which shouldn't 58exist and will be deleted afterwards) in which case a Unix domain 59socket is created. 60 61{\bf SECURITY NOTE:} Using Internet domain sockets if extremely 62insecure for IPC as there is absolutely no access control for 63them, use Unix domain sockets whenever possible! 64 65\membersection{wxClient::OnMakeConnection}\label{wxclientonmakeconnection} 66 67\func{wxConnectionBase *}{OnMakeConnection}{\void} 68 69Called by \helpref{wxClient::MakeConnection}{wxclientmakeconnection}, by 70default this simply returns a new wxConnection object. Override 71this method to return a wxConnection descendant customised for the 72application. 73 74The advantage of deriving your own connection class is that it 75will enable you to intercept messages initiated by the server, 76such as \helpref{wxConnection::OnAdvise}{wxconnectiononadvise}. You 77may also want to store application-specific data in instances of 78the new class. 79 80\membersection{wxClient::ValidHost}\label{wxclientvalidhost} 81 82\func{bool}{ValidHost}{\param{const wxString\& }{host}} 83 84Returns true if this is a valid host name, false otherwise. This always 85returns true under MS Windows. 86 87