2013-02-17 4 views
0

네트워크를 통해 tcp 소켓 (Server> Client)을 통해 ArrayList를 전달해야합니다. 내가 통과하고 Arraylist of Strings가 잘 작동하고 클라이언트가 ArrayList를 받아 들여서 인쇄 할 수 있습니다. 하지만 ArrayList가 꺼져있을 때 많은 예외가 있으며 작동하지 않습니다. 아래를보십시오.Object ArrayList over socket

서버

ArrayList<Database> List = new ArrayList<>(); //Database is a seperate class 
    Database item1 = new Database(); 
      item1.code = "1568"; 
    item1.name = "Round Table"; 
    item1.details = "Ikeas best Seller"; 
    item1.inStock = "17"; 
    List.add(item1); 

... 나는 많은 예외가 던진이 코드를 사용하여

ObjectOutputStream oout = new ObjectOutputStream(socket.getOutputStream()); 
oout.writeObject(List); 

클라이언트

ObjectInputStream iin = new ObjectInputStream(socket.getInputStream()); 
Object items = iin.readObject(); 

. ArrayList<String> Items = new ArrayList<>();과 같은 문자열 유형 배열로 배열을 대체하면 정상적으로 작동합니다. 어떤 아이디어? 나는 정말로 여기에 쌓여있다. 고맙습니다!

+1

많은 사람들 중에서 적어도 하나의 예외를 볼 수 있습니까? –

+0

클라이언트의 클래스 경로에 Database 클래스가 있습니까? – ManojGumber

+1

'Database' 클래스는 직렬화 가능합니까? 그렇지 않으면 직렬화하여 보내야합니다. – m0skit0

답변

0

목록에 넣고 보내는 개체는 Serializable 인터페이스를 구현해야합니다. 즉, 해당 클래스 내의 필드도 Serializable이어야합니다.

+0

고마워! 나는 자바에서 전혀 발전하지 않았지만 당신의 대답 후에 나는 더 많은 것을 찾았고 문제를 해결했다. 나는 잘못을 찾고 있었고, 지적하고 해결책을 찾았습니다! – user2052544

관련 문제