У меня проблема с чтением данных из сокета. Я пытался решить мою проблему по-разному, и я думаю, что мой код сейчас является самым простым, чтобы проверить его. У Android есть проблема с чтением из сокета и остановка в этой строке (inStream.read()). Через 10 секунд (socket.setSoTimeout) у меня есть сообщение ------- error: null. Я хочу читать любые данные (0-255) или -1, но ничего не произошло. В PHP (на моем сервере, моем коде) и ПК (не в моем приложении) все в порядке. Что мне делать?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" />
--edit--
Мои журналы: http://codepaste.net/eapot2
Используйте e.printStackTrace(), чтобы получить осмысленный вывод, связанный с исключенным пойманным. – BobTheBuilder
Я добавляю эту строку. Мои журналы: http://codepaste.net/eapot2 Если я удалю socket.setSoTimeout (10000); то Android падает (ничего не происходит) – kamil4u