猿问

如何编写可扩展的基于Tcp / Ip的服务器

如何编写可扩展的基于Tcp / Ip的服务器

我正处于编写新的Windows服务应用程序的设计阶段,该应用程序接受长连接的TCP / IP连接(即,这不像HTTP,其中有许多短连接,而是客户端连接并保持连接数小时或数天或甚至几周)。

我正在寻找设计网络架构的最佳方法的想法。我将需要为该服务启动至少一个线程。我正在考虑使用Asynch API(BeginRecieve等),因为我不知道在任何给定时间(可能是数百个)我将连接多少客户端。我绝对不想为每个连接启动一个线程。

数据将主要从我的服务器流向客户端,但有时会从客户端发送一些命令。这主要是一个监控应用程序,我的服务器定期向客户端发送状态数据。

有关尽可能扩展的最佳方法的任何建议吗?基本工作流程 谢谢。

编辑:要明确,我正在寻找基于.net的解决方案(如果可能,C#,但任何.net语言都可以)

BOUNTY注意:要获得赏金,我希望不仅仅是一个简单的答案。我需要一个解决方案的工作示例,作为指向我可以下载的内容的指针或在线的简短示例。它必须是基于.net和Windows(任何.net语言都可以接受)

编辑:我要感谢所有给出好答案的人。不幸的是,我只能接受一个,我选择接受更为人熟知的Begin / End方法。Esac的解决方案可能会更好,但它仍然足够新,我不确定它将如何运作。

我已经提出了我认为很好的所有答案,我希望我能为你们做更多的事情。再次感谢。


吃鸡游戏
浏览 492回答 3
3回答
随时随地看视频慕课网APP
我要回答