wxWidgets/docs/latex/wx/ipcservr.tex

68 lines
2.5 KiB
TeX
Raw Normal View History

\section{\class{wxServer}}\label{wxserver}
A wxServer object represents the server part of a client-server
DDE-like (Dynamic Data Exchange) conversation. The actual
DDE-based implementation using wxDDEServer is available on Windows
only, but a platform-independent, socket-based version of this
API is available using wxTCPServer, which has the same API.
To create a server which can communicate with a suitable client,
you need to derive a class from wxConnection and another from
wxServer. The custom wxConnection class will intercept
communications in a `conversation' with a client, and the custom
wxServer is required so that a user-overridden \helpref{wxServer::OnAcceptConnection}{wxserveronacceptconnection}
member can return a wxConnection of the required class, when a
connection is made. Look at the IPC sample and the \helpref{Interprocess communications overview}{ipcoverview} for
an example of how to do this.
\wxheading{Derived from}
wxServerBase
\wxheading{Include files}
<wx/ipc.h>
\wxheading{See also}
\helpref{wxClient}{wxclient},
\helpref{wxConnection}{wxddeconnection}, \helpref{IPC
overview}{ipcoverview}
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxServer::wxServer}\label{wxserverctor}
\func{}{wxServer}{\void}
Constructs a server object.
\membersection{wxServer::Create}\label{wxservercreate}
\func{bool}{Create}{\param{const wxString\& }{service}}
Registers the server using the given service name. 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. false is returned if the call failed (for example, the
port number is already in use).
\membersection{wxServer::OnAcceptConnection}\label{wxserveronacceptconnection}
\func{virtual wxConnectionBase *}{OnAcceptConnection}{\param{const wxString\& }{topic}}
When a client calls {\bf MakeConnection}, the server receives the
message and this member is called. The application should derive a
member to intercept this message and return a connection object of
either the standard wxConnection type, or (more likely) of a
user-derived type.
If the topic is {\bf STDIO}, the application may wish to refuse the
connection. Under UNIX, when a server is created the
OnAcceptConnection message is always sent for standard input and
output, but in the context of DDE messages it doesn't make a lot
of sense.