2011-09-29 44 views
2

可能重複:
multi client/server chat program in c#?構建C#.NET客戶端 - 服務器聊天應用程序的最佳方式是什麼?

我一直在嘗試了一段時間來建立一個簡單的客戶端 - 服務器的聊天,和我不斷髮現有許多不同的方式。

我只是好奇最好的方式是什麼。

第一個涉及到創建一個新的套接字,將其綁定到特定的端口和任何IP地址,然後監聽新的連接(並且就教程而言)。接下來涉及使用TcpListener偵聽特定的端口(儘管它發出警告,稱其已棄用,並且必須包含IP地址),然後等待新的TCP連接,然後創建新的哈希表或新列表存儲TcpClient(s)。這就是所有的服務器端。客戶端幾乎相同,總是試圖連接到服務器。

那麼,建設一個最好的方法是什麼?另外,我是否應該使用StreamReader和StreamWriter(有些Tuts使用),還是應該使用NetworkStream,我應該使用什麼來傳輸消息?

+0

你能解釋一下WCF是什麼? – Alper

+0

WCF是「Windows Communication Foundation」。它是涵蓋程序之間通信的框架。它可以配置爲使用各種協議和通信對象,並且在應用程序級別,您不必擔心細節。您可以通過套接字有效地發送對象,而無需編寫代碼來序列化/反序列化內容。 –

+0

有關WCF的更多信息:通常在WCF中,客戶端比服務器發送內容更容易輪詢服務器。客戶端只需進行函數調用,然後從服務器獲取結果。結果可以是一個對象,一個對象列表,或任何你可以編程一個函數返回的東西。底線:像其他任何函數調用一樣調用WCF,但可以在某個遠程服務器上完成處理。 –

回答

0

你在正確的軌道上。但是,您可能想了解一些WCF的更高級功能,例如Duplex服務,這些服務將允許基於事件從服務器進行推送。

0

就我個人而言,我只是設置一個XMPP服務器,並與Jabber.net(http://code.google.com/p/jabber-net/)或其他的東西交談,但我沒有看過幾個年份。

相關問題