C#字节流通过TCP

时间:2010-09-14 17:04:19

标签: c# tcp network-programming client-server

我是一名小工程师,希望能在这里找到所有有经验的人提出的建议。

我已经分配了一个项目来创建一个通过TCP进行字节流的服务器/客户端应用程序。我们公司处理带有GPS的双向无线电和调度软件,我们希望用它来制作服务器/客户端应用程序。目前,调度软件可以连接到用户必须在的中央基站,但是我们希望从远程位置访问该软件(如果基站距离调度员可以在几英里外的中继站) )。

用户/客户 - >轮询麦克风的位置 - >服务器 - >基站 - > OTA信号 - >收音机和后面

我一直在关注Windows Communication Foundation,但是我可以通过其他方式来解决这个问题?

我将主要使用C#/ .NET / Visual Studio 2008

2 个答案:

答案 0 :(得分:1)

我们使用UDP将汽车的GPS更新发送到处理更新的服务器。在类似的应用程序(通常带宽有限)中,您可以真正区分UDP和瞬时TCP连接(如HTTP)之间的差异(从远程主机到服务器获取数据所需的时间)。 UDP数据包将立即到达其目的地,并且TCP连接的设置非常明显,通常需要几秒钟才能完成。我喜欢WCF框架,但是如果你的应用程序是我一直在使用的那种系统,我怀疑你会对它感到满意(......除非在更新之间有很长的间隔)。

最近,我一直在使用持久性TCP连接(使用原始套接字),如果您想确保数据包到达目的地,这是一个很好的方法。虽然我认为,这样做的方法是尽可能地保持连接处于打开状态,并在代码中断时将代码重新连接起来。

答案 1 :(得分:0)

如果您只想要一个原始字节流,那么Socket或稍微封装的TcpClient可能是一个更轻量级的解决方案。

但是如果你想发送完整的数据结构和“调用函数”,那么WCF似乎是一个不错的选择。

使用WCF,你有一个编程经验,接近于使用真实对象作为参数调用常规方法,但是使用Socket只需要发送字节数组,并且需要自己解释结果。