我正在编写一个新的 Windows 服务应用程序,该应用程序接受长时间运行的 TCP/IP 连接(例如,这不像 HTTP 那样有许多短连接,而是一个客户端连接并保持连接数小时、数天甚至数周)。
我正在寻找设计网络架构的最佳方法。我需要为服务启动至少一个线程。我正在考虑使用异步 API (BeginRecieve 等) ,因为我不知道在任何给定的时间(可能有数百个)我将连接多少个客户机。我当然不想为每个连接启动一个线程。
数据将主要从我的服务器流向客户端,但有时会有一些命令从客户端发送。这主要是一个监视应用程序,其中我的服务器定期向客户端发送状态数据。
使其尽可能可伸缩的最佳方法是什么? 基本工作流?
明确地说,我正在寻找基于.NET 的解决方案(如果可能的话,C # ,但任何.NET 语言都可以)。
我需要一个解决方案的工作示例,要么作为我可以下载的东西的指针,要么作为一个简短的示例。一定是的。基于 NET 和 Windows 的(任何。NET 语言)。