[Mono-dev] .Net TCP/IP remoting with unmanaged C++ endpoint?

Jonathan Pryor jonpryor at vt.edu
Thu Jun 29 05:51:55 EDT 2006


On Wed, 2006-06-28 at 12:47 +0200, Marek Habersack wrote:
>   I've just been asked a question whether it would be possible to create a
> TCP/IP{ (native .NET binary protocol) connection between an unmanaged server
> written in C++ and a managed client.

Your subject says "TCP/IP remoting", while the body says "TCP/IP
(native .NET binary protocol), so I'll assume you actually mean
Remoting.

You can't use Remoting from a purely unmanaged server, as Remoting
assumes a .NET execution environment (marshaling object references,
object types, class data member names...).  You _might_ be able to fake
enough of the protocol to do it purely unmanaged, but it would likely be
_very_ brittle.

Remoting -- and any other technology which assumes that the same type
can be loaded & used on both sides of the connection -- is not suitable
for cross-runtime uses (e.g. .NET -> Java/C/C++/Python/...).

Which leaves you with looking for something that _is_ useful for
cross-runtime uses, of which there are several:

  - Corba.NET (which uses CORBA as the communications protocol)
  - DBus (if both processes will be on the same machine)
  - SOAP
  - ZeroC/ICE (which you already mentioned)
  - Some home-grown protocol

SOAP is likely to be the most mature, but since it isn't a binary
protocol there may be some concerns about its performance.

 - Jon





More information about the Mono-devel-list mailing list