我以前从来没有在Windows上做过IPC。目前我正在开发一对程序,一个标准的GUI/CLI应用程序和一个windows服务。应用程序必须告诉服务该做什么。那么,假设通信仅在本地进行,那么这两个进程的最佳通信方法是什么呢?
其中最好的定义是更健壮,更不容易出错,不是最好的,也不是最容易编码的。
代码示例将非常受欢迎,但不是必需的:-)
注意:我问的是使用什么,标准的TCP套接字,命名管道,还是其他一些通信方式。
谢谢!
发布于 2008-09-08 17:04:17
仅对于本地,我们已经成功地使用了命名管道。避免了TCP的开销,并且几乎(至少对于.NET)与您可以获得的效率一样高,同时也有一个像样的API可用。
发布于 2008-09-08 17:17:00
由于您只能使用WCF2.0,因此.Net可能不是一个好的选择。您可以使用具有共享内存的.Net远程处理作为同一台计算机上的应用程序域之间的底层通信机制。使用这种方法,您可以轻松地将您的进程放在不同的机器上,并将共享内存协议替换为网络协议。
发布于 2010-09-09 05:24:18
与windows服务通信的标准方法是使用服务控制代码。Windows服务可以接收从0到255的代码。0-127为系统预留。128到255可用于自定义命令。
如果您需要使用数据库、xml、文件、tcp、http等将复杂对象发送到服务,则除了用于发送重载配置、过程项等控制命令之外,还应使用此控制代码。
还有其他可用的功能,例如查询服务。请参阅Windows服务文档和api。
https://stackoverflow.com/questions/50153
复制相似问题