首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WCF VS.套接字

WCF VS.套接字
EN

Stack Overflow用户
提问于 2011-03-06 15:57:46
回答 4查看 20.6K关注 0票数 10

我想知道哪一个WCF或.NET套接字是更有效和更推荐在游戏开发场景中。

以下是游戏的不同部分:

在internet上播放的-a客户端/服务器通信

本地网络上对等的-peer。

我想知道你会在这些部件上使用哪种技术(两个都使用wcf,两个都使用socket,一个使用wcf,另一个使用socket…)如果可能的话,还有为什么。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-06 17:10:37

WCF的目的是为了节省开发人员为不同的传输协议编写代码,它具有大量的功能,这就是为什么它比Sockets慢的原因。另外,WCF适用于面向服务的应用程序。我不认为游戏属于这一类。

但正如你提到的每秒只有3-4个请求,WCF可能是一个更好的选择,因为它非常灵活,将节省大量的开发时间。

以下是一些要点:

以net*开头的绑定用于.NET应用程序之间。(客户端和服务器WCF)

如果其中任何一个不是WCF:您只能使用不是以net前缀开头的绑定。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

票数 7
EN

Stack Overflow用户

发布于 2011-03-06 16:27:12

如果您想最大限度地提高性能,套接字是可行的方法,WCF同时具有数据和处理开销。但是..。如果性能对你来说那么重要,你也应该考虑汇编器而不是c#。

WCF将处理每秒3-4个请求,而不会眨眼。

我会从WCF开始,它会节省你很多的开发时间,不需要滚动你自己的解析器等等。你可以专注于游戏的其他部分。如果WCF对你的游戏来说太慢了,你可以抛出WCF,转而使用套接字。

票数 11
EN

Stack Overflow用户

发布于 2011-03-06 16:58:23

这两种技术都可以管理您提到的每秒请求的数量,但是编程模型却截然不同。套接字的级别非常低,需要您在其上构建自己的通信协议。但是,开销可以是最小的。WCF是在RPC (远程过程调用)之后建模的,并在传输上提供了抽象。它允许您通过非常不同的技术使用相同的API,例如web服务或消息传递。然而,提供的抽象有它自己的一组问题,比如一定的复杂性或陡峭的学习曲线……

在您的示例中,您还可以考虑MSMQZeroMQActiveMQ等消息传递技术,这些技术提供了套接字的良好抽象,并大大简化了开发。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5209372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档