【发布时间】:2011-08-25 22:14:52
【问题描述】:
我的 Winforms 客户端/服务器应用程序依赖 UDP 多播实时更新所有客户端。服务器将事件触发到已知的 UDP 接收器,每个客户端都使用 System.Net.Sockets.UdpClient 类的实例接收它们。
这很有效——当它有效时。每个客户端都有一个远程处理对象,它通过 TCP 进行同步调用,而 UDP 处理异步内容,因此客户端保持无状态。但是我们的许多客户都以各种方式禁用了 UDP——有些禁用了多播,有些完全禁用了 UDP,有些是故意禁用的,有些是偶然禁用的。我最终做了比我想要的更多的网络管理。
在我看来,另一种选择是让服务器管理客户端连接并通过 TCP 发送事件,但这需要有状态的服务器,而且看起来不太有吸引力。有没有更好的选择?
【问题讨论】: