Передача через Socket объекта?
1) Если хочется своего колхоза то имплементируйте в нужный класс интерфейс Serializable, на стороне передачи будет нечто ObjectOutputStream out ...;
out.writeObject(object);
на стороне приема нечто такоеObjectInputStream in ...;
YouClass object = (YouClass)in.readObject();
2) Если хочется взять готовенькое то смотри в сторону kryonet, все быстро и просто.
3) Если все же хочется своего но не особо хочется морочиться с сериализацией то смотри protobuf.
4) Еще можно пойти классическим путем. В классе который хотите передавать создаете конструктор с нужными полями, дальше этот класс перегоняете в json\xml\обычным массивом текста с разделителями и передаете строкой, на принимающей строке разбираете эту строку и создаете объект через конструктор. Для автоматизации можно взять к примеру Gson в котором все сведется к такому видуpublic static class Entity {
    int id;
    String name;
   //другие типы и данные, если класс то аналогичным образом описываете

    public Entity(int id, String name) {
        this.id = id;
        this.name = name;
    }
}String json = gson.toJson(entity); // {"id":100,"name":"name"}
Entity read = gson.fromJson(json, Entity.class);
Предлагаю посмотреть в сторону protobuf. А вообще можно и с помощью json + basе64 обмениваться.