2013-01-18 40 views
-1

所以我就作爲一個任務,使一個小的聊天功能,其中多個客戶端應該能夠連接到服務器,並與它通信,服務器應該然後能夠選擇誰就是了與...交流。 (從下拉列表或其他東西)。服務器傳送回給多個不同的客戶端

我已經能夠到目前爲止做的,從一些教程的幫助,是客戶端可以連接到服務器,並用它,但沒有更多的交流。服務器無法通信。

我很新的這一點,並在C#和TCP/IP認識有限。

https://gist.github.com/4565988 < - 包含了客戶端和服務器代碼。

所以我什麼,我需要幫助是服務器回覆到不同的客戶端和客戶端收到來自服務器的消息的方式。

任何幫助表示讚賞!

最好的問候,弗雷德裏克

+0

你怎麼管理,打開一個TCP連接是隻有一條路?每個定義的TCP總是雙向的。 – TomTom

+0

嗯,我想問題不在於它不是以一種方式打開,而是我不知道如何溝通。 –

回答

0

至於一個起點,我會看看WCF Duplex Services。雙工允許您訂閱服務並使用雙向通信發送更新。

本質上,您可以使用幾種方法創建服務器作爲WCF服務:getclientssendMessage。然後,客戶端可以訂閱服務,並在(連接時)獲取其他訂戶(您提供給UI)的列表,然後將消息發送回服務(然後使用雙工將其發送給任何人它需要)。

只要你不結婚用的插座,這將是比創建一個協議並管理連接列表輕鬆了許多。在code project上也有使用WCF作爲聊天媒介的例子。

0

對於TCP的知識,我RECONN芭芭拉黑克勒的VID,她顯示了一個簡短的實施這種類型的服務器中。不幸的是在Java中,但仍然非常有用。

我RECONN分鐘0 - 15爲基礎(UDP)和15 - 40 TCP連接,爲什麼mutlithreading是需要TCP而不是UDP。

http://www.youtube.com/watch?v=5QzNHEcLp10

0

這很簡單,真的。您成功提取並用於讀取客戶端發送的數據的TCP流也可以寫入以便發回某些內容,因此,您只需將連接和流對象移出某種共享集合即可你的服務器端發送邏輯可以在它想要發送的時候得到它。同樣,在客戶端中,您將對TCP流發出讀取以讀取服務器發送的內容。

相關問題