我想知道哪些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