c# - 应用程序之间的通信(进程间)

标签 c# client-server interprocess

我将要编写一个负责与外部硬件通信的“服务器”应用程序。该应用程序应处理来自客户的请求。客户端向服务器发送一条消息,如果服务器忙于处理硬件,则新消息应存储在队列中,稍后将进行处理。

客户端也应该能够取消一个请求(如果它在服务器的队列中)。当服务器应用程序完成硬件后,它应该能够将结果发送回请求作业的客户端。

服务器和客户端应用程序可能在也可能不在同一台 PC 上。所有开发均在 .NET (C#) 2005 中完成。

解决这个沟通问题的最佳方法是什么?

MSMQSOAPWCFRemoting ?其他?

最佳答案

假设您可以使用 .NET 3.0 或更高版本,那么您可能希望将 WCF 作为通信 channel - 接口(interface)是一致的,但它允许您使用适当的传输机制,具体取决于客户端和服务器相对于每个的位置其他 - 因此您可以根据需要选择使用 SOAP 或 MSMQ 或二进制格式或其他格式(并且可以根据需要推出自己的格式)。它还涵盖了双向通信的需求。

在服务器上排队消息可能应该被视为一个单独的问题 - 特别是考虑到需要删除排队的消息。

关于c# - 应用程序之间的通信(进程间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/833376/

相关文章:

java - HP QTP (VbScript) : work with Java-objects (like DotNetFactory for . NET 类)

c# - xamarin 形式的侧边栏抽屉

c++ - 为什么我的缓冲区在多次 read() 之后保存相同的数据?

java - 并发服务器计数器

java - 小程序-服务器通信,我该怎么做?

linux - 我应该监视哪些进程间锁定调用?

javascript - 什么是最有效的 node.js 进程间通信库/方法?

c# - 在c#中,如何检查线程池中的线程是工作线程还是I/O线程?

C# 连接字符串或字符数组

c# - 为依赖于外部库/sdks 的类编写单元测试