c# – 持续140个TCP连接?

我们目前正在研究在.NET Micro框架上运行的120-140个嵌入式硬件设备与服务器之间进行通信的最有效方式.

每个嵌入式设备都需要通过TCP实时发送并从服务器请求信息.

我的问题是:初始化到服务器的140个TCP连接,然后挂起这些连接,或者为每个进出设备的请求初始化一个新连接会更好吗?坚持和管理140个TCP连接会给服务器带来很大压力吗?

当服务器检测到数据库中的新数据时,它需要将此新信息发送到1 .. *设备(信息针对特定设备),如果我保持140个连接,我需要查找正确的连接每次我需要发送信息而不是仅发送到IP:与新数据相关联的PORT.

我想另一个可能是愚蠢的问题是它实际上可能挂在单个端口上的140个TCP连接上吗?

任何建议/意见表示赞赏!

最佳答案
您通常可以将超过140个“客户端”连接到服务器(具有良好的网络/硬件/ RAM)…

我建议总是用真实场景(负载等)来测试这类事情,因为有网络(性能,稳定性……),硬件(服务器RAM等)和SW(服务器究竟做什么)等方面?)只能由您检查.

根据协议,你可以/甚至应该在那里放置一些超时/重新连接机制.

您的意思是非常快 – 只需使用ConcurrentDictionary来保存IP所需的信息:PORT作为密钥(假设服务器在完整的.NET 4上运行).

有些参考资料请参阅:

> http://msdn.microsoft.com/en-us/library/dd287191.aspx
> http://geekswithblogs.net/BlackRabbitCoder/archive/2011/02/17/c.net-little-wonders-the-concurrentdictionary.aspx

编辑 – 根据评论:

坚持TCP / IP连接并不需要客户端处理太多…它需要一点内存.我建议做一个小测试(1-2个客户)来检查你的具体情况的假设.

转载注明原文:c# – 持续140个TCP连接? - 代码日志