我從套接字讀取數據時遇到問題。我試圖用不同的方式解決我的問題,我認爲我的代碼現在是測試它的最簡單的方法。 Android有一個問題,從套接字讀取並停在這一行(inStream.read())。 10秒後(socket.setSoTimeout)我有一個消息-------錯誤:null。我想讀取任何數據(0-255)或-1,但沒有發生任何事情。在PHP(在我的服務器上,我的代碼)和PC(不是我的應用程序)一切都很好。我該怎麼辦?Android - inputStream.read() - 我什麼也看不懂
這是我的第一篇文章,所以我很抱歉可能的錯誤。謝謝你的幫助!
try{
socket = new Socket("192.168.0.150", 502);
socket.setSoTimeout(10000);
outStream = new DataOutputStream(socket.getOutputStream());
inStream = new DataInputStream(socket.getInputStream());
System.out.println("----------" + outStream);
System.out.println("----------" + inStream);
outStream.write(0x01);
outStream.write(0x03);
outStream.write(0x10);
outStream.write(0x00);
outStream.write(0x00);
outStream.write(0x04);
outStream.write(0x40);
outStream.write(0xC9);
outStream.flush();
System.out.println("----------ok 1");
/////////////////////////////
// Thread.sleep(50);
System.out.println("----------Test1: " + socket.isConnected());
System.out.println("----------Test2: " + socket.isInputShutdown());
int dat = inStream.read();
System.out.println("----------ok2: ");
} catch(Exception e){
e.printStackTrace(); // <-- edit
System.out.println("----------Error: " + e.getMessage());
}
------------
<uses-permission android:name = "android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name = "android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name = "android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name = "android.permission.WAKE_LOCK" />
<uses-permission android:name = "android.permission.INTERNET" />
- 編輯 -
我的日誌:http://codepaste.net/eapot2
使用e.printStackTrace()以獲取與捕獲到的異常相關的有意義的輸出。 – BobTheBuilder 2013-04-28 14:47:01
我加了這一行。我的日誌:http://codepaste.net/eapot2 如果我刪除socket.setSoTimeout(10000);然後Android崩潰(沒有任何反應) – kamil4u 2013-04-28 15:12:30