[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