2013-10-21 175 views
0

我正在用C#.Net編寫服務器和客戶端之間的聊天程序。除了聊天外,兩個用戶都可以參與不同的活動,例如遠程桌面和一起玩遊戲。C中的多客戶端服務器#

我有幾個問題:

  1. 多線程將被髮送,並在同一時間接收來自客戶端的東西,這意味着每個選項需要確定包是爲他,並採取從數據它呢? (在同時傳輸文件的同時運行遠程桌面,遠程桌面線程將看到文件包到達流,但應該忽略它,對吧?)

  2. 什麼是一個好的緩衝區大小設置爲套接字我會接受客戶?

  3. 我是否以包含數據的專用類的形式進行通信,或嘗試將通信保持爲通過流發送的字節數組?

+4

http://social.msdn.microsoft.com/Forums/vstudio/en-US/65c848ca-537a-4494 -b5e8-3509ea61c171/c-chat-application?forum = csharpgeneral – granadaCoder

+4

Windows Communication Foundation如何? http://msdn.microsoft.com/en-us/library/dd456779.aspx –

+0

WebSockets如何? http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-getting-started-with-signalr-20 –

回答

1

問題2和3對我們來說是不可能的,因爲我們不知道溝通和要求是什麼樣子。

至於處理多個線程:這是很難得到正確的,我會使用現有的解決方案。

我建議你看看0MQ,因爲它可能會阻止你重新發明輪子。

有.NET客戶端庫可用:http://nzmq.codeplex.com/和nuget包http://www.nuget.org/packages/clrzmq/2.2.5以及。

良好的開端是The Guide

對於一個簡單的例子看this C# server及其hello world client in C#