Im, создающий приложение, которое должно отправить класс на сервер, написанный на C++, с использованием Sockets. Класс состоит из переменных как Ints. Я хочу преобразовать класс java в байты, а затем отправить его через сокет в виде пакета. Сервер ожидает 8 байтов для размера пакета. Когда я пытаюсь преобразовать свой объект, я получаю более 8 байтов. Как еще я могу отправить свой объект на сервер? Кроме того, мой код ниже отправляет 4 байта данных в два байта с двумя байтами. Почему это так?Клиент Android с удаленным сервером
public void connect2() {
String serverHostname = new String("My IP");
ObjectOutputStream out2 = null;
ObjectInputStream in2 = null;
try {
echoSocket = new Socket(serverHostname, MYPORT);
StatusPacket p = new StatusPacket();
byte[] data = new byte[8];
data = serializeObject(p);
int j = data.length;
out2 = new ObjectOutputStream(echoSocket.getOutputStream());
out2.flush();
in2 = new ObjectInputStream(echoSocket.getInputStream());
DataOutputStream dOut = new DataOutputStream(echoSocket.getOutputStream());
out2.write(data);
out2.close();
in2.close();
echoSocket.close();
} catch (UnknownHostException e) {
System.err.println("Don't know about host: " + serverHostname);
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for "
+ "the connection to: " + serverHostname);
System.exit(1);
}
}