开发者

What is the best way for two programs on the same machine to communicate with each other

I need to pass some data (integers) from one (C++) program to another (C#). What is the fastest way to do this?

P.S.: OS: Win开发者_JAVA百科dows XP


My personal preference for this, given that you're using C++ and C# both, and it's on the same system, would be to use Pipes.

They work very well from native code (C++) as well as from C# via NamedPipeClientStream and NamedPipeServerStream.

However, there are other options for Interprocess Communication, any of which would work.


Shared memory would be the fastest but named pipes are pretty fast too and much easier to use.


Check out this article for a run-down of the available options. Your best bet is probably a pipe.


Using files would be the simplest way. If you need the speed, then network sockets may be a good option.


mailslots can be used if you're communication is one-way and your messages are small. Otherwise I'd recommend using named pipes (as others have recommended).

here's something on mailslots

All IPC mechanisms


Just in case it's helpful, if it's not critical that this be interprocess communication (if the functionality you require out of one can be shaped into a DLL which both use or similar) you can use the Common Language Runtime for interoperability.


My recommendation would be Sockets or RPC. I'm not familiar with pipes, but it seems to be a popular option too.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜