我想知道哪些WCF或.NET套接字在游戏开发场景中效率更高,更推荐。WCF VS.套接字
下面是游戏的不同部分:
-a客户端/服务器通信到互联网上播放
-peer同行本地网络上。
我想知道你会在这些部位使用的技术(WCF两个,插座两个,WCF在一个插座上的其他...),为什么,如果可能的话。
涉及的游戏不需要很高的通信频率(每秒3-4个就足够了)。
我想知道哪些WCF或.NET套接字在游戏开发场景中效率更高,更推荐。WCF VS.套接字
下面是游戏的不同部分:
-a客户端/服务器通信到互联网上播放
-peer同行本地网络上。
我想知道你会在这些部位使用的技术(WCF两个,插座两个,WCF在一个插座上的其他...),为什么,如果可能的话。
涉及的游戏不需要很高的通信频率(每秒3-4个就足够了)。
WCF的目的是为了节省开发人员为不同的传输协议编写代码,并且它具有大量的功能,所以这就是为什么它比Sockets慢。 Plus WCF适用于面向服务的应用程序。我不认为游戏属于这个类别。
但是,正如你所提到的每秒只有3-4个请求,WCF可能是一个更好的选择,因为它非常灵活,将节省大量的开发时间。
几点:
的绑定与净*启动是指.NET应用程序之间使用。 (客户端和服务器WCF)
如果其中任何一个不是WCF:您只能使用不以网络前缀开头的绑定。 BasicHttpBinding,WSHttpBinding等这些比net *绑定慢得多,因为很多开销都在那里。
你可以继续NetPeerTcpBinding并玩它一段时间。它也支持双工通信。
下面是P2P一些有用的链接:
Peer-to-Peer Programming with WCF and .NET Framework 3.5
http://blogs.interknowlogy.com/2009/08/05/building-a-really-simple-wcf-p2p-application
如果你想最大限度地提高性能的插座是要走的路,WCF既有数据和处理开销。但是......如果性能对你至关重要,你还应该考虑用汇编代替c#。
WCF将每秒处理3-4次请求,而不会眨眼。
我将开始与WCF,它会为你节省大量的开发时间,没有必要推出自己的解析器等,您可以专注于其他地区的游戏来代替。如果它真的让我们的WCF对于你的游戏来说太慢了,那么你可以将WCF扔出去,然后转向套接字。
如果您不需要实时性能(您正在使用C#,所以我想是这样的话),那么我会建议WCF。
WCF会给你一个更容易OOP风格的工具来编写你的服务器 - 客户端协议。
WCF的优势在于,从长远来看,最终编写的协议和代码更易于维护和遵循。
如果您想添加任何东西,添加和更改协议的功能将会更容易。
WCF是高度可定制的,所以你更好地了解不同的发送数据的方法提供,并重载它们的方式。
您可以使用不同的绑定类型来优化数据传输:
C#可以用来编写实时应用程序(我想它也取决于你实时的意思)。 – 2012-06-12 01:16:45
你打算怎么做的客户端/客户端本地网络上?这没有意义。 – Chev 2011-03-06 07:59:29
他意味着同侪2同侪;它是有道理的 – madd0 2011-03-06 08:03:55
不,对等是有道理的。不是客户端到客户端。 – Chev 2011-03-06 08:05:02