Как переслать экземпляр класса по сети?

Рейтинг: 0Ответов: 1Опубликовано: 08.02.2015

Привет всем!

Столкнулся с проблемой: есть сервер и клиент. На сервере есть объект класса. Нужно переслать этот самый объект класса клиенту. Как это сделать?

На стороне сервера я написал:

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

alt text

//-----------------------------------------------------------

Client ClassPath:

alt text

Ответы

▲ 1

Не знаеш classpath? Учи это. Это основа основ.