2010-05-29 49 views
0

我目前正在嘗試做的是使用silverlight爲irc創建一個非常基本的網絡聊天。.NET TCP客戶機/服務器通信問題

基本上我如何做到這一點是有一個tcp服務器偵聽來自silverlight的連接。當客戶端連接時,它會創建一個到irc的新連接,並通過服務器應用程序將數據傳遞到客戶端/ irc。

我已經得到它爲一個客戶端連接工作正常,但只要兩個(或更多)客戶端連接多個連接到irc,但從客戶端傳遞的所有數據只是通過最新的irc連接(如果這就說得通了)。

例如客戶端1,客戶端2和Client3都連接到IRC,但無論是誰發送的數據這一切都通過Client3。

它可以識別來自不同的客戶端發出的數據在客戶端和服務器應用程序之間,我認爲問題在於我已經連接到IRC的方式中。當TCP服務器接受一個新的客戶端時,一個新的線程被用來監聽傳入的數據,並且從那裏新的線程被連接到IRC。我確信那是存在問題的地方,但我現在很困惑自己,想知道是否有人能幫我找出解決方案。

編輯:我覺得這個問題是,它不能區分具體的客戶端使用的線程,所以它只是通過最新的一個發送。這甚至可以完成?

+0

歡迎來到SO。請不要在標題和標籤中複製「C#」。此外,您的問題是.NET,而不是C#編程語言。 – 2010-05-29 23:11:53

+0

你可能應該發佈一些關鍵代碼。 – m0s 2010-05-30 03:10:24

回答

0

看來,服務器只打開套接字到最後一次連接。也許如果你嘗試處理服務器上的消息,並打開一個套接字到客戶端,它可能會工作。

+0

我不認爲這部分有問題。它從客戶端發送數據 - >服務器 - > irc,這是問題所在。客戶端輸入數據,然後進入服務器(這部分是好的),然後進入irc(這是所有從最新連接出來的地方) – Jamie 2010-05-29 23:04:57