Я создал ServerSocket и читаю сообщения от разных клиентов.Один из клиентов настаивал на том, что мое приложение не работает правильно после отправки своих сообщений.Мне удалось получить трассировку TCP и увидеть, что они действительно отправляли свои сообщения, но мое серверное приложение не считывало данные из сокета.Я получаю дамп потока, и все, кажется, там хорошо:
"Reader Thread" daemon prio=3 tid=0x0ae8a000 nid=0x999 runnable [0x14525000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
В чем может быть причина, по которой я не могу читать сообщения из потока?Кстати, другие клиенты не страдают подобными проблемами.
private byte[] readByte(int readCount) throws Exception {
int b;
int readedCount = readCount;
byte[] receiveBuffer = new byte[readCount];
while( true ) {
if( readCount > 0 ) {
b = inputStream.read(receiveBuffer, readCount - readedCount, readedCount);
} else {
b = 0;
}
if( b < 0 ) {
throw new UnrecoverableSocketException("Connection is Broken");
} else {
readedCount = readedCount - b;
}
if( readedCount == 0 ) {
return receiveBuffer;
}
}
}