两个 .NET 组件如何通过 LAN 进行通信?

发布于 2024-10-21 03:09:01 字数 221 浏览 3 评论 0原文

我正在使用 .NET 编写我的第一个客户端-服务器应用程序,我可以使用许多可能的协议和库:UDP、TCP、HTTP、序列化、.NET 远程处理、WCF...我如何选择“正确的”协议和库(我的列表中是否缺少任何重要技术)?

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

I'm writing my first client-server app with .NET and there are many possible protocols and libraries I could use: UDP, TCP, HTTP, Serialization, .NET Remoting, WCF... how do I choose the "right" one (and are any important technologies missing from my list)?

My scenario is pretty simple: the client displays the current state of hundreds of objects on a map. There are two types of objects, each with many fields of state information. On connect, the server sends the state of all objects in a burst, after which incremental updates are sent. The client can also request historical data.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

金橙橙 2024-10-28 03:09:01

WCF 应该是您的默认选择,除非您在使用 WCF 时遇到一些特定问题。

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

远程处理已被弃用,取而代之的是 WCF。序列化将由 WCF 完成,它可以通过 HTTP 或原始 TCP/IP 进行通信。从一种协议更改为另一种协议时,您的服务只需进行很少的更改(如果有的话)。

WCF should be your default choice, unless you have some specific problem using WCF.

For instance, in some environments, WCF might conceivably might not be fast enough (doubtful). Only in that case would I chose anything else.

Remoting has been deprecated in favor of WCF. Serialization will be done for you by WCF, which can communicate either over HTTP or over raw TCP/IP. It will require little, if any, change in your service to change from one protocol to another.

超可爱的懒熊 2024-10-28 03:09:01

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

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

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

There are lots of ways to do this: you're actually designing your own application protocol, so the choice is totally yours; there is no "standard" way to have a client and a server communicate.

Do you want to have full low-level control on what the client and the server exchange? Then go with raw TCP (UDP is of no use here, as it is connectionless and it doesn't guarantee delivery); but you'll have to encode and transmit object data on your own, or serialize them and transmit them over a raw TCP stream.

WCF makes things a lot easier, encapsulating all of this for you; if both the client and the server are .NET applications running on recent frameworks, this should be your first choice.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文