2011-03-09 34 views
1

我正在用.NET编写我的第一个客户端 - 服务器应用程序,并且我可以使用许多可能的协议和库:UDP,TCP,HTTP,序列化,.NET Remoting,WCF ...如何选择“right “其中一个(以及我列表中缺少的重要技术)?两个.NET组件如何通过LAN进行通信?

我的场景很简单:客户端显示地图上数百个对象的当前状态。有两种类型的对象,每种都有许多状态信息字段。连接时,服务器发送突发中的所有对象的状态,之后发送增量更新。客户端也可以请求历史数据。

回答

2

WCF应该是你的默认选择,除非你有一些使用WCF的特定问题。

例如,在某些环境中,WCF可能可能会不够快(可疑)。只有在这种情况下,我才会选择其他的东西。

远程处理已被弃用,以支持WCF。 WCF将为您完成序列化,WCF可以通过HTTP或通过原始TCP/IP进行通信。它将需要很少的(如果有的话)您的服务中的更改从一个协议更改为另一个。

0

很多的方法来做到这一点:你实际上是在设计自己的应用程序协议,所以选择完全是你的;没有“标准”方式让客户端和服务器进行通信。

您想对客户端和服务器之间的交换进行完全的低级别控制吗?然后去原始的TCP(UDP在这里没有用,因为它是无连接的,它不保证传送);但是您必须自己编码和传输对象数据,或者将它们序列化并通过原始TCP流传输它们。

WCF使事情变得更容易,为您封装了所有这些;如果客户端和服务器都是最近的框架上运行的.NET应用程序,这应该是您的首选。

+0

我相信我会为许多UDP或“原始TCP”应用程序选择WCF。您需要创建自定义传输和消息编码器,但一旦完成,WCF就会将通信从服务中抽象出来,这样服务的其余部分就不会关心正在使用的传输。 – 2011-03-09 19:36:19

相关问题