2012-06-16 41 views
0

我試圖用C#爲Unity遊戲鏈接到Java服務器StreamWriter.Flush();將不刷新

當Java服務器最多我可以發送數據的唯一方法是關閉的StreamWriter(OUT.Close()),其實際上也關閉了連接。所以我只能發送數據。或者,每當我想發送消息時,我都必須重新連接到服務器。

當我只使用Flush()時,數據將不會被髮送到服務器。 代碼:

NetworkStream STREAM = connection.GetStream(); 
StreamWriter OUT = new StreamWriter(STREAM); 
OUT.Write(text); 
OUT.Flush() 

這是我的閱讀代碼:

BufferedReader input = new BufferedReader(new InputStreamReader(client.getInputStream())); 
String inputstring = input.readLine(); 
+2

我懷疑這個錯誤是在你的閱讀代碼中,而不是在你的代碼中。一個瘋狂的猜測是,你不把你正在閱讀的流作爲一個流,並期待數據包。 – CodesInChaos

+0

這是我的閱讀代碼BufferedReader input = new BufferedReader(new InputStreamReader(client.getInputStream())); \t \t \t \t \t \t String inputstring = input.readLine(); – MrDisco

回答

1

你寫的文字不換行分隔符與WriteReadLine閱讀,所以這並不匹配。如果沒有行分隔符,ReadLine會讀取到流的末尾,這就解釋了您需要關閉流的原因。將Write替換爲WriteLine

+0

謝謝!!!!!! :d!這讓我非常沮喪,因爲無論我如何接近這個問題,它似乎都沒有消失。我終於可以繼續前進! :d – MrDisco