【问题标题】:Client/server event handling: alternatives to UdpClient?客户端/服务器事件处理:UdpClient 的替代方案?
【发布时间】:2011-08-25 22:14:52
【问题描述】:

我的 Winforms 客户端/服务器应用程序依赖 UDP 多播实时更新所有客户端。服务器将事件触发到已知的 UDP 接收器,每个客户端都使用 System.Net.Sockets.UdpClient 类的实例接收它们。

这很有效——当它有效时。每个客户端都有一个远程处理对象,它通过 TCP 进行同步调用,而 UDP 处理异步内容,因此客户端保持无状态。但是我们的许多客户都以各种方式禁用了 UDP——有些禁用了多播,有些完全禁用了 UDP,有些是故意禁用的,有些是偶然禁用的。我最终做了比我想要的更多的网络管理。

在我看来,另一种选择是让服务器管理客户端连接并通过 TCP 发送事件,但这需要有状态的服务器,而且看起来不太有吸引力。有没有更好的选择?

【问题讨论】:

    标签: c# events udp remoting


    【解决方案1】:

    您可以尝试使用 WCF 和发布/订阅设计模式。我移动了一个 winforms TCP/UDP 应用程序,就像你描述的那样,使用 netTCP 绑定和 UDP 广播让客户端找到服务器,一旦他们找到它,他们就会订阅,你使用 WCF 回调合同来更新客户端。如果连接断开,您需要双方都有智能。

    此外,如果服务器始终是带有 WCF 回调的设置地址,则无需使用 UDP 来查找服务器,因此您可以消除 UDP 并仅依靠 netTCPBinding 将消息推送到客户端,反之亦然.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      相关资源
      最近更新 更多