2011-05-18 172 views
1

我有一個奇怪的問題。我正在嘗試編寫一個使用套接字進行通信的C#服務器 - 客戶端項目。我是C#的新手,但我已經用Java編寫了相同的項目,並且在那裏工作得很好。C#套接字服務器不能從客戶端接收

因此,客戶端連接到服務器,從套接字的網絡流創建讀/寫流並通過它發送單個字符串,但服務器不會收到任何內容。

我確定服務器正常工作,因爲我已經連接了一個Java客戶端,並且它從客戶端接收字符串。

我不明白怎麼來的套接字連接,但沒有通過它。

下面是客戶端的代碼:

... 
socket = new TcpClient("localhost", PORT); 
NetworkStream ns = socket.GetStream(); 
StreamReader rin = new StreamReader(ns); 
StreamWriter wout = new StreamWriter(ns); 
Console.WriteLine("-->Connected to server"); 
string msg; 
for (; ;) 
{ 
    Console.WriteLine("waiting to write"); 
    while(user.Equals("")) //user is set in Form thread working in parallel 
     System.Threading.Thread.Sleep(100); 
    Console.WriteLine("sending: " + user); 
    wout.WriteLine(user); 
    wout.Flush(); 
    Console.WriteLine("SENT"); 
    ... 

端口是相同的,沒有引發異常(我有一個嘗試 - 捕獲解決這個問題),客戶端發送通過StreamWriter的字符串,因爲它打印出「派」,但在接收端(streamReader.ReadLine())並沒有什麼服務器等待發生......

+0

不要使用反引號'撇號爲。這使編輯認爲你正在輸入代碼片段。謝謝:-) – mellamokb 2011-05-18 17:40:12

+0

一切看起來不錯。在執行寫入操作後,您是否看到「已發送」寫入控制檯? – Will 2011-05-18 17:41:07

+0

服務器代碼可能會有幫助,因爲這似乎是問題所在。 – 2011-05-18 17:41:13

回答

0

試試這個:

socket = new TcpClient(); 
socket.Connect("localhost", PORT); 
//... Your code continues here 
相關問題