У меня есть настройка клиента сервера. Я отправляю объект с клиента на сервер и затем читаю его обратно с сервера. Но я продолжаю получать EOFExcepttion, и это тоже не во время readObject, а при создании ObjectInputStream.
private class ClientTask extends AsyncTask<Message, Void, HashMap>{
@Override
protected HashMap doInBackground(Message... messages) {
Message message = messages[0];
HashMap reconcileMap = new HashMap();
try {
Socket socket = new Socket(InetAddress.getByAddress(new byte[]{10, 0, 2, 2}), message.port*2);
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
oos.writeObject(message);
oos.flush();
reconcileMap = (HashMap) ois.readObject();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (StreamCorruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return reconcileMap;
}
}
Я получаю эту ошибку:
java.io.EOFException
05-02 15:23:10.084 27843-27857/? W/System.err: at libcore.io.Streams.readFully(Streams.java:83)
05-02 15:23:10.084 27843-27857/? W/System.err: at java.io.DataInputStream.readShort(DataInputStream.java:152)
05-02 15:23:10.084 27843-27857/? W/System.err: at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:2063)
05-02 15:23:10.084 27843-27857/? W/System.err: at java.io.ObjectInputStream.<init>(ObjectInputStream.java:372)
05-02 15:23:10.084 27843-27857/? W/System.err: at edu.buffalo.cse.cse486586.simpledynamo.SimpleDynamoProvider$Reconcile.doInBackground(SimpleDynamoProvider.java:520)
05-02 15:23:10.084 27843-27857/? W/System.err: at edu.buffalo.cse.cse486586.simpledynamo.SimpleDynamoProvider$Reconcile.doInBackground(SimpleDynamoProvider.java:511)
05-02 15:23:10.084 27843-27857/? W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-02 15:23:10.084 27843-27857/? W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-02 15:23:10.084 27843-27857/? W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
05-02 15:23:10.084 27843-27857/? W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-02 15:23:10.084 27843-27857/? W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-02 15:23:10.084 27843-27857/? W/System.err: at java.lang.Thread.run(Thread.java:841)
Даже если я удалю строку ois.readObject (), я все равно получу то же исключение. Кто-нибудь может мне помочь с этим?