Я пытаюсь создать сервер и клиентское приложение на двух телефонах Android (Nexus 4). Один телефон как клиент и другой как сервер. Но на стороне сервера я получаю ошибку исключения EOF при чтении входящих данных, а на стороне клиента я получаю исключение IO при написании некоторого байта в Socket outputStream. Может кто-нибудь просветить меня, что я делаю неправильно?Исключение IO и EOF при отправке и получении байта на сервер и обратно
стороне клиента Код
// Send only one byte to server
while (!Thread.currentThread().isInterrupted()) {
try {
Log.d(TAG,"Entering into the IO exception block");
byte[] image_data = new byte[3];
String send_string = new String(image_data);
// Create a Output Stream to send the bytes back to server
OutputStream out;
out = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(out);
Log.d(TAG,"Created data output Stream");
dos.writeUTF(send_string);
/*
dos.writeInt(image_data.length);
dos.write(image_data, 0, image_data.length);
Log.d(TAG,"Writing the ByteArray into Socket ");
*/
out.close();
dos.flush();
dos.close();
s.close();
} catch (IOException e1) {
Log.d(TAG,"Exception while writing to Socket");
e1.printStackTrace();
}
}
стороне сервера Код: Исключение при dis.readFully (ClientByteArray)
if (s == null)
s = ss.accept();
Log.d(TAG,"Socket server is closed " + ss.isClosed() +", Recieved Buffer Size = " + ss.getReceiveBufferSize());
Log.d(TAG,"Accepted Client socket at server");
byte[] ClientByteArray = new byte[ss.getReceiveBufferSize()];
InputStream in;
in = s.getInputStream();
DataInputStream dis = new DataInputStream(in);
dis.readFully(ClientByteArray);
Log.d(TAG,"Data recieved from Client, Bytes = " + ClientByteArray.length);