我正在编写一个新的Windows服务应用程序,该应用程序接受长时间运行的TCP/IP连接(即不像HTTP协议那样存在许多短连接,而是客户端连接并保持连接数小时、天甚至数周)。
我正在寻找最佳设计网络架构的思路。我将需要为此服务启动至少一个线程。我正在考虑使用异步API(如BeginRecieve等),因为我不知道在任何给定时间将有多少个客户端连接(可能达到数百个)。我绝对不希望为每个连接启动一个线程。
数据主要会从服务器向客户端流出,但偶尔也会有一些来自客户端的命令发送过来。这主要是一个监控应用程序,在其中我的服务器会定期向客户端发送状态数据。
最好的方法使其尽可能具有可扩展性是什么?基本工作流程是什么?
需要明确的是,我正在寻找基于.NET的解决方案(如果可能的话,是C#,但任何.NET语言都可以)。
我需要一个工作示例,可以是指向可下载内容的指针或内置的简短示例。它必须是基于.NET和Windows的(任何.NET语言均可接受)。