Как переслать экземпляр класса по сети?
Привет всем!
Столкнулся с проблемой: есть сервер и клиент. На сервере есть объект класса. Нужно переслать этот самый объект класса клиенту. Как это сделать?
На стороне сервера я написал:
public static class GameData implements Serializable {
private static final long serialVersionUID = -7918700940677946167L;
int player1Position;
int player1Score;
int player1Ping;
}
....
// Send class DATA
GameData gameData = new GameData();
gameData.player1Ping = 60;
gameData.player1Score = 10;
gameData.player1Position = 50;
// Serialize object
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(4 * 1024);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(gameData);
byte[] objectBytes = byteArrayOutputStream.toByteArray();
// UDP Packet from Server
outD.write(objectBytes);// Здесь, по идее, отсылается обьект класса.
byteArrayOutputStream.close();
objectOutputStream.close();
На стороне клиента:
ObjectInputStream objectInputStream = new ObjectInputStream(client.getInputStream());
MyThreadWorker obj = (MyThreadWorker)objectInputStream.readObject();// вот тут эксепшен (java.lang.ClassNotFoundException: server_mdl.FileSender$GameData).
objectInputStream.close();
MyThreadWorker имплементирует Serializable.
Информацию брал отсюда и отсюда. Почему вылетает эксепшен?
Server ClassPath
//-----------------------------------------------------------
Client ClassPath:
Источник: Stack Overflow на русском