c# - 服务器和客户端之间以两种方式进行进程间通信的最佳方式

标签 c# multithreading process

我有 N 个工作进程和一个启动这些工作进程的服务器进程。现在我希望我的工作人员以两种方式与服务器通信(WorkerK --> ServerServer --> WorkerK)。

执行此操作的最佳方法是什么?

我阅读了有关 MemoryMappedFilesNamedPipes 和其他一些内容的信息。我应该选择哪一个,为什么?

我的项目是 Windows 窗体应用程序。

最佳答案

如果您对通信一无所知,请选择现成的解决方案。双向 WCF channel 就是一个很好的例子。参见 What You Need To Know About One-Way Calls, Callbacks, And Events对于底漆。阅读WCF Overview (包括所有链接!)以了解 WCF 的介绍。

如果您更精通通信,那么您应该更清楚地定义问题:

  • 使用什么身份验证模型? Kerberos、证书、密码,没有?
  • 内联网还是互联网?
  • 谁在听?您自己的服务、http.sys、WCF 激活?
  • 还有最基本的问题:同步还是异步?我并不是说 asyn 是异步 API,而是指面向队列消息的协议(protocol)中的异步。

关于c# - 服务器和客户端之间以两种方式进行进程间通信的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18511600/

相关文章:

C# 使用 NReco FFMpegConverter 进行实时视频截图

linux - Linux中如何指定一个CPU核心来运行程序

linux - 我应该担心流程组中的哪些流程接收信号的顺序吗?

javascript - 传递参数日期时间?在 mvc 和 jquery 中

c# - 如何在C#中使用zKemKeeper连接考勤机?

c# - 如果可以编写我们自己的等待对象,那么为什么异步方法只能返回 Task<T>、Task 和 void?

android - 如何将线程中的数据/流实时传递到 Android 中的 Activity ?

java - 这是没有 volatile 和同步开销的更好版本的 Double Check Locking

iphone - Objective-c在进入背景时不要暂停

linux - 虚拟地址空间