Version: 3.3.0

#include <wx/ipc.h>

+ Inheritance diagram for wxClient:

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...
 
wxConnectionBaseMakeConnection (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...
 
wxConnectionBaseOnMakeConnection ()
 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 wxClassInfoGetClassInfo () const
 This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar). More...
 
wxObjectRefDataGetRefData () 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 wxObjectRefDataCreateRefData () const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More...
 
virtual wxObjectRefDataCloneRefData (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
wxObjectRefDatam_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.