我通過兩個步驟將數據發送到服務器: 1)我將使用字節發送的數據長度[4] 2)數據。Java - InputStream - 輸入測試
服務器偵聽數據的確切長度(先發貨),然後回覆。
所以我聽InputStream並嘗試獲取數據。
我的問題: 無論我在做什麼,我只得到我發送的流,但服務器明確地發送一個新的字符串。
看來我不能等待-1(字符串的末尾),因爲程序會超時,並且我確信服務器不會發送任何內容。
因此,我正在使用inputStream.available()來查找緩衝區中剩餘的字節數。
一旦我在讀完所有數據後發送inputStream.read(),它將會以「網絡空閒超時」超時。
但我需要聽取inputStream以確保我不會丟失信息。
爲什麼我只接收我發送的信息,而不是服務器發送的信息? 如何收聽新項目的連接?
這裏是我的代碼:
private void sendData (byte[] sendBytes){
try {
os.write(sendBytes);
os.flush();
} catch (IOException ex) {
}
}
請幫 THD
我不明白你想要做什麼,但使用is.available()不正確。服務器在做什麼?客戶在做什麼?它是什麼類型的服務器? – Kaj 2011-05-28 18:52:21
我想要做什麼: 從服務器接收數據。 客戶端發送數據,服務器接收它們(正確測試服務器端的人員)。 服務器發送數據,但客戶端不讀取正確的數據,但只讀取客戶端發送之前的字符串,一旦服務器發送了某些內容(不同)。 我不知道它是什麼樣的服務器,我不能在星期一之前問服務器的傢伙。 – TDH 2011-05-28 18:58:43
我可以看到我收到的數據: inputStream.parent.Inherited.buf.0-99 iStreams設置爲1,connectionOpen爲true 我可以發佈的任何其他內容,這會有所幫助嗎? – TDH 2011-05-28 19:01:55