我将要编写一个负责与外部硬件通信的“服务器”应用程序。该应用程序应处理来自客户的请求。客户端向服务器发送一条消息,如果服务器忙于处理硬件,则新消息应存储在队列中,稍后将进行处理。
客户端也应该能够取消一个请求(如果它在服务器的队列中)。当服务器应用程序完成硬件后,它应该能够将结果发送回请求作业的客户端。
服务器和客户端应用程序可能在也可能不在同一台 PC 上。所有开发均在 .NET (C#) 2005 中完成。
解决这个沟通问题的最佳方法是什么?
最佳答案
假设您可以使用 .NET 3.0 或更高版本,那么您可能希望将 WCF 作为通信 channel - 接口(interface)是一致的,但它允许您使用适当的传输机制,具体取决于客户端和服务器相对于每个的位置其他 - 因此您可以根据需要选择使用 SOAP 或 MSMQ 或二进制格式或其他格式(并且可以根据需要推出自己的格式)。它还涵盖了双向通信的需求。
在服务器上排队消息可能应该被视为一个单独的问题 - 特别是考虑到需要删除排队的消息。
关于c# - 应用程序之间的通信(进程间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/833376/