2013-04-18 178 views
3

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

一个共同的沟通过程应该是这样的:

GPS设备发起到我的服务器的连接 我的服务器的答案,如果我想获得的数据 装置发送GPS数据 我的服务器发送报告,设备有关获取它(SG像校验) 从GPS,reportm获得新数据,并再次出现这种情况,再后来 GPS设备关闭连接 所以,在我的服务器我需要

跟踪连接/活动的客户端 关闭任何客户端从服务器端 赶上事件,当一个设备关闭连接 获取字节数据 发送数据到客户端 我开始通过互联网了解这个主题,但它似乎是我的噩梦。有很多方法,但我无法找出哪个是最好的。

异步套接字方法对我来说似乎是最好的,但是在这种异步样式中编写代码很糟糕,并且不容易调试。

所以我的quetsion是:你认为在C#中实现高性能TCP服务器的最佳方式是哪一种?你知道有这么好的开源组件吗? (我尝试了几个,但我找不到一个好的。)

在此先感谢,任何专家的答案将appriciated!

回答

0

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

  1. WCF TCP(双工?) - 在这里你可以有一个异步模式,客户端和服务器都可以互相调用。 Defintely需要一些管道参与,但有很多文件。

  2. RESTFUL - 我认为这可能是更好的选择。这非常容易实现异步,而且由于REST的无状态特性,开销很小。仅供参考,您可以使用TCP进行此操作,但HTTP可能是更好的选择。