3

我是一位经验丰富的 C# 开发人员,但到目前为止我还没有开发过 TCP 服务器应用程序。现在我必须开发一个高度可扩展和高性能的服务器,它可以处理至少 5-10,000 个并发连接:通过 GPRS 从 GPS 设备获取原始字节数据。

一个常见的通信过程应该是这样的:

GPS 设备启动与我的服务器的连接我的服务器回答如果我想获取数据设备发送 GPS 数据我的服务器向设备发送关于获取它的报告(sg 像校验和)从 GPS 获取新数据,reportm 并且这种情况会在以后一次又一次地发生GPS DEVICE 关闭连接所以,在我的服务器中,我需要

跟踪连接/活动客户端以从服务器端关闭任何客户端捕获事件,当设备关闭连接时获取字节数据向客户端发送数据我开始通过互联网阅读有关此主题的信息,但这对我来说似乎是一场噩梦。有很多方法,但我找不到最好的方法。

异步套接字方法对我来说似乎是最好的,但是以这种异步风格编写代码很糟糕,而且不容易调试。

所以我的问题是:您认为用 C# 实现高性能 TCP 服务器的最佳方式是什么?你知道有什么好的开源组件可以做到这一点吗?(我尝试了几个,但我找不到一个好的。)

在此先感谢,任何专家的答案都将得到应用!

4

1 回答 1

0

您可以使用两个建议的想法。

  1. WCF TCP (Duplex?) - 在这里你可以有一个异步模式,客户端和服务器都可以互相调用。肯定需要一些管道,但是那里有很多文档。

  2. RESTFUL - 我认为这对你来说可能是更好的选择。这很容易实现异步,并且由于 REST 的无状态特性,开销要少得多。仅供参考,您可以为此使用 TCP,尽管 HTTP 可能是更好的选择。

于 2013-04-18T14:28:01.500 回答