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())並沒有什麼服務器等待發生......
不要使用反引號'撇號爲。這使編輯認爲你正在輸入代碼片段。謝謝:-) – mellamokb 2011-05-18 17:40:12
一切看起來不錯。在執行寫入操作後,您是否看到「已發送」寫入控制檯? – Will 2011-05-18 17:41:07
服務器代碼可能會有幫助,因爲這似乎是問題所在。 – 2011-05-18 17:41:13