VB.Net - 客户/服务器游戏的网络方法

时间:2009-08-14 22:07:01

标签: networking communication tcp

我的第一个问题对我来说很容易:)

我一直在开发多年,并且使用Web服务编写了太多应用程序(主要是Web应用程序) - 我对SOAP / WSDL /等感到满意...我还习惯编写TCP / IP客户端 - 服务器应用程序在当天使用旧的winsock回来。

我有点无聊并且正在寻找一个新的项目来扩展我的技能所以决定去做一个游戏或某种服务器监控和远程控制应用程序

我还没有决定哪个,这个问题的答案有希望告诉我的决定。

我想要的是关于我应该采用哪种方法来处理沟通的一些建议。

让我们假设我现在正在玩游戏 - 我希望双向通信具有低延迟并且能够处理尽可能多的同时连接。

我考虑过Web服务,但似乎需要很多开销 - 特别是因为我需要客户端公开它。

TCP / IP可以完成这项工作,但看起来有点低级别,而且我有很多优点,比如定义。据推测,我需要为通信等制定一个新协议......我也不确定我是如何让一个客户端使用多个通道来获取并发信息 - 例如聊天和更新位置信息。我可以尝试以某种方式多路复用,但我最初的想法是:排队看起来很混乱

.Net远程处理 - 我根本没有触及过这么多。似乎比Web服务具有更低的开销和更大的灵活性,但我不知道如何正确评估。

我非常感谢您提供的任何输入(并且教程链接非常棒)

提前感谢您的帮助

编辑:我有一个答案指出我在UDP库。 UDP适合这个吗?对于不需要历史记录的位置信息/类似信息,我可以看到这是多么有利但是对于聊天,丢失的数据包可能是个问题 - 或者我手动发回收据确认?如果是这样,我不是因为有限的优势而重复TCP / IP功能吗?

道歉,如果这是一个不正确的方式来扩展问题 - 指导也是如此:)

2 个答案:

答案 0 :(得分:1)

看看像Lidgren这样的东西,看看它是如何工作的。它用c#编写,因此可以与VB.Net一起使用

Lidgren是一个套接字包装器,我在一些小型多人游戏中使用它(主要通过使用标头说明数据包类型。即第一个字节代表数据包类型,

Lidgren

答案 1 :(得分:1)

如果您在.NET 3.5 SP1上是最新的,那么您应该使用WCF。你说你不想使用Web服务,我认为你的意思是你不想使用SOAP over HTTP。 WCF比SOAP over HTTP做得更多。特别是,它可以使用相同的基础结构通过TCP / IP进行二进制。它还支持点对点。