WCF VS. 套接字

kit*_*ite 9 .net c# sockets wcf

我想知道哪个WCF或.NET套接字效率更高,而且在游戏开发场景中推荐的更多.

以下是游戏的不同部分:

- 在互联网上播放的客户端/服务器通信

- 在本地网络上对等.

我想知道你将在这些部件上使用哪种技术(两者都是wcf,两者都是套接字,另一端是wcf,另一端是套接字......)以及为什么,如果可能的话.

涉及的游戏不需要高通信频率(每秒3-4个就足够了).

Alb*_*nbo 11

如果要最大限度地提高性能套接字是可行的方法,WCF既有数据又有处理开销.但是......如果性能对您至关重要,您还应该考虑汇编而不是c#.

WCF将在没有闪烁的情况下每秒处理3-4个请求.

我将从WCF开始,它将为您节省大量的开发时间,无需自行解析等等.您可以专注于游戏中的其他部分.如果它真的变成我们的WCF对你的游戏来说太慢了你就可以把WCF扔出去而去寻找套接字.


Ase*_*tam 6

WCF的目的是保存开发人员为不同的传输协议编写代码,并且它具有大量的功能,因此它比Sockets慢.加上WCF用于面向服务的应用程序.我不认为游戏属于这一类.

但是,正如您每秒仅提到3-4个请求,WCF可能是更好的选择,因为它非常灵活,可以节省大量的开发时间.

一些要点:

以net*开头的绑定意味着在.NET应用程序之间使用.(客户端和服务器WCF)
如果任何一个不是WCF:您只能使用不以网络前缀开头的绑定.BasicHttpBinding,WSHttpBinding等.这些比net*绑定慢得多,因为有大量的开销.

您可以继续使用NetPeerTcpBinding并使用它一段时间.它还支持双工通信.

以下是P2P的一些有用链接:

使用WCF和.NET Framework 3.5进行点对点编程
http://blogs.interknowlogy.com/2009/08/05/building-a-really-simple-wcf-p2p-application