我一直在研究使用TCP通过网络发送消息。
我目前的情况是我在计算机上运行单个应用程序的多个实例。我想发送一条TCP消息,让所有应用程序接收消息并对其进行操作。
所有我都能找到有1个发送者和1个接收者的例子。我不想只是将TCP消息发送到网络中,让所有的监听应用程序都收到相同的消息。
我尝试使用this guide,但它似乎也不适用于多个接收器。
任何人都可以指出我正确的方向指导我做上面描述的内容或者发布一些例子吗?
编辑:我要发送的所有内容都是一个10个字符的字符串,也许还有另一种发送/接收方式的方法吗?
答案 0 :(得分:1)
您可以在C#中使用共享内存来实现您的要求。 让我解释一个简单的解决方案: 例如:
创建一个映射文件(具有特定名称,例如" XXX"),
如果一个应用程序想要向其他人发送消息:
在接收方,他们还会打开名称相同的映射文件" XXX"
您现在可以从其他应用程序接收消息,但是存在一个小问题:
希望这能解释您如何解决问题
答案 1 :(得分:0)
如果要向所有应用程序实例发送消息,可以查看SignalR
。
有几个帖子确实介绍了这个框架:
答案 2 :(得分:0)
可能是愚蠢但简单而且可能......当通过干净的界面抽象时可能是一个好的开始:为应用程序选择共享目录,将包含消息的文件写入此目录并使用FileWatcher监听目录中的更改
一旦您的应用程序需要增加,请将接口实现替换为使用MSMQ或类似企业的接口实现。
另一个简单的解决方案是共享内存/ memory mapped files。从v4开始,API包含在.NET框架中。您必须手动执行读/写同步。
答案 3 :(得分:0)
这些GUI应用程序?如果是,您可以使用目标为SendMessage
的{{1}}或PostMessage
。 (虽然这只会让你发送一对数字,而不是“字符串”)
更复杂,但完全是为此目的设计的,是mailslot。
另一方面,Mailslots是进程向多个进程广播消息的简单方法