进程间通信和广播

Posted

技术标签:

【中文标题】进程间通信和广播【英文标题】:InterProcess Communication and BroadCasting 【发布时间】:2014-02-14 14:30:04 【问题描述】:

我正在处理进程间通信。我遇到了命名管道通信。

我已经有了一些基本的想法,但需要确定以下几点?

    名称管道是否可以同时拥有多个客户端?

    它是否支持基于不同语言的不同进程构建的通信。

请告诉我,命名管道通信和进程间通信的广播有什么区别?

【问题讨论】:

【参考方案1】:

不,单个管道仅支持单个客户端。与 Web 服务器非常相似,它还为每个单独的客户端创建多个连接。管道服务器的工作方式相同。

是的,在进程之间架起一座桥梁是命名管道的主要用例。

Windows 支持不同的广播对象,即邮槽。它从未移植到.NET,它非常没用。广播是不可靠的,就像在拥挤的足球场里大喊大叫,却不保证任何人都能听到你的声音。如果您需要广播,那么您应该考虑使用 UDP 套接字。当然还要处理它随机丢失数据的后果。

如果您考虑命名管道,通常建议使用 WCF。它在它们之上放置了一个层,以使它们更易于使用。

【讨论】:

先生,感谢您的回复。在阅读了几篇文章并在谷歌上搜索之后。我发现我需要做的是创建一个互斥锁,并且不同的进程可以访问该互斥锁。但是我不知道如何通过 c# 编程来实现它。您可以分享任何文章或示例代码吗?这对我来说会很有价值。 这是另一个问题,您可以通过再次单击按钮来询问(搜索后)。

以上是关于进程间通信和广播的主要内容,如果未能解决你的问题,请参考以下文章

Android广播实现进程间通信,很简单

广播自定义消息实现进程间的通信问题

需要帮助设计进程间通信层

VC++ 进程间的通信

进程间通信和线程间通信

进程间通信和线程间通信