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