| Version: 3.3.1

Public Member Functions | List of all members
wxClient Class Reference
Class List by Category » Interprocess Communication

`#include <wx/ipc.h>`

Inheritance diagram for wxClient:
[legend]

## Detailed Description

A wxClient object represents the client part of a client-server DDE-like (Dynamic Data Exchange) conversation.

The actual DDE-based implementation using wxDDEClient is available on Windows only, but a platform-independent, socket-based version of this API is available using wxTCPClient, which has the same API.

To create a client which can communicate with a suitable server, you need to derive a class from wxConnection and another from wxClient. The custom wxConnection class will intercept communications in a 'conversation' with a server, and the custom wxClient is required so that a user-overridden wxClient::OnMakeConnection member can return a wxConnection of the required class, when a connection is made.

Look at the IPC sample and the Interprocess Communication for an example of how to do this.

##

Library: wxBase
Category: Interprocess Communication

See also
  wxServer, wxConnection, Interprocess Communication

## Public Member Functions
| wxClient ()
| Constructs a client object. More...
wxConnectionBase * | MakeConnection (const wxString &host, const wxString &service, const wxString &topic)
| Tries to make a connection with a server by host (machine name under UNIX - use 'localhost' for same machine; ignored when using native DDE in Windows), service name and topic string. More...
wxConnectionBase * | OnMakeConnection ()
| Called by MakeConnection(), by default this simply returns a new wxConnection object. More...
bool | ValidHost (const wxString &host)
| Returns true if this is a valid host name, false otherwise. More...
Public Member Functions inherited from wxObject
| wxObject ()
| Default ctor; initializes to nullptr the internal reference data. More...
| wxObject (const wxObject &other)
| Copy ctor. More...
virtual | ~wxObject ()
| Destructor. More...
virtual wxClassInfo * | GetClassInfo () const
| This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). More...
wxObjectRefData * | GetRefData () const
| Returns the wxObject::m_refData pointer, i.e. the data referenced by this object. More...
bool | IsKindOf (const wxClassInfo *info) const
| Determines whether this class is a subclass of (or the same class as) the given class. More...
bool | IsSameAs (const wxObject &obj) const
| Returns true if this object has the same data pointer as obj. More...
void | Ref (const wxObject &clone)
| Makes this object refer to the data in clone. More...
void | SetRefData (wxObjectRefData *data)
| Sets the wxObject::m_refData pointer. More...
void | UnRef ()
| Decrements the reference count in the associated data, and if it is zero, deletes the data. More...
void | UnShare ()
| This is the same of AllocExclusive() but this method is public. More...
void | operator delete (void *buf)
| The delete operator is defined for debugging versions of the library only, when the identifier `__WXDEBUG__` is defined. More...
void * | operator new (size_t size, const wxString &filename=nullptr, int lineNum=0)
| The new operator is defined for debugging versions of the library only, when the identifier `__WXDEBUG__` is defined. More...

## Additional Inherited Members
Protected Member Functions inherited from wxObject
void | AllocExclusive ()
| Ensure that this object's data is not shared with any other object. More...
virtual wxObjectRefData * | CreateRefData () const
| Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More...
virtual wxObjectRefData * | CloneRefData (const wxObjectRefData *data) const
| Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data. More...
Protected Attributes inherited from wxObject
wxObjectRefData * | m_refData
| Pointer to an object which is the object's reference-counted data. More...

## Constructor & Destructor Documentation

## ◆ wxClient()

wxClient::wxClient | ( |  | ) |

Constructs a client object.

## Member Function Documentation

## ◆ MakeConnection()

wxConnectionBase* wxClient::MakeConnection | ( | const wxString & | host,
|  | const wxString & | service,
|  | const wxString & | topic
| ) |  |

Tries to make a connection with a server by host (machine name under UNIX - use 'localhost' for same machine; ignored when using native DDE in Windows), service name and topic string.

If the server allows a connection, a wxConnection object will be returned. The type of wxConnection returned can be altered by overriding the OnMakeConnection() member to return your own derived connection object.

Under Unix, the service name may be either an integer port identifier in which case an Internet domain socket will be used for the communications, or a valid file name (which shouldn't exist and will be deleted afterwards) in which case a Unix domain socket is created.

Note
  Using Internet domain sockets is extremely insecure for IPC as there is absolutely no access control for them, use Unix domain sockets whenever possible!

## ◆ OnMakeConnection()

wxConnectionBase* wxClient::OnMakeConnection | ( |  | ) |

Called by MakeConnection(), by default this simply returns a new wxConnection object.

Override this method to return a wxConnection descendant customised for the application.

The advantage of deriving your own connection class is that it will enable you to intercept messages initiated by the server, such as wxConnection::OnAdvise. You may also want to store application-specific data in instances of the new class.

## ◆ ValidHost()

bool wxClient::ValidHost | ( | const wxString & | host | ) |

Returns true if this is a valid host name, false otherwise.

This always returns true under MS Windows.