Я пытаюсь разработать клиент TCP, который работает на мобильных устройствах с использованием MIDP 2.0 и CLDC 1.1. Я пытаюсь пример кода, и у меня есть следующая проблема:
Я получаю странное исключение при попытке прочитать данные обратно (из мидлета).
Это мой код:
//Wait for an incoming message
firstByte = in.read();
ByteArrayOutputStream textRecieved = new ByteArrayOutputStream(); //Will be used to hold the data
if (firstByte >= 0 )
{
int messageSize = this.in.available();
//Read the message
while (messageSize > 0)
{
byte[] buffer = new byte[messageSize];
this.in.read(buffer);
textRecieved.write(buffer);
messageSize = this.in.available(); //Just in case the server sent the request in chunks.
System.out.println("Reading...");
}
}
textRecieved.close();
Это исключение, которое я получаю:
java.io.IOException: Unknown error 10053 during socket::read
at com.sun.midp.io.j2me.socket.Protocol.read0(), bci=0
at com.sun.midp.io.j2me.socket.Protocol.nonBufferedRead(), bci=12
at com.sun.midp.io.BufferedConnectionAdapter.readBytes(), bci=36
at com.sun.midp.io.BaseInputStream.read(), bci=227
at com.sun.midp.io.BufferedInputStream.fill(), bci=172
at com.sun.midp.io.BufferedInputStream.read(), bci=16
at hello.Client.run22222(Client.java:60)
at hello.HelloMIDlet.startApp(HelloMIDlet.java:193)
at javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
at com.sun.midp.midlet.MIDletPeer.startApp(), bci=7
at com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269
at com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
at com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
at com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
at com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
Строка, которая вызывает исключение, такова:
firstByte = in.read();
Я читаю в отдельной теме. Я столкнулся с той же ошибкой, когда отправлял запросы и пытался прочитать их, используя один и тот же сервер. Сервер - простой эхо-сервер, ничего сложного.
P.S. Я знаю, что способ написания кода выглядит как C #, но это Java, мне легче читать и следовать этому пути.
Спасибо.