-1
소켓을 통해 작성한 직렬화 가능 객체를 보내려면 이상한 문제가 있습니다. 실제로 서버와 클라이언트를 동일한 시스템에서 실행하면 제대로 작동하지만 서버와 클라이언트가 다른 시스템에있는 경우 서버 측의 readen 객체가 비어 있습니다 (크기는 0과 같습니다)소켓을 통해 직렬화 가능 객체 보내기
임의의 하나 그 문제를 해결할 생각인가?
서버 (코드가 우는 소리입니다) :
public static void main() {
...
InputStream is = mysocket.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
ArrayList<MyObject> list_of_object;
list_of_object = (ArrayList<MyObject>) ois.readObject();
logger.log(Level.INFO,"object readen with size : "+list_of_object.size());
...
}
클라이언트 :
public static void main() {
...
ObjectOutputStream oos = new ObjectOutputStream(mysocket.getOutputStream());
oos.writeObject(list_of_object);
...
}
개체의 'size()'메서드는 무엇을합니까? 그리고 "서버 측의 readen 객체가 비어 있습니다 (크기가 0 인 경우)"라는 것은 무엇을 의미합니까? 더 자세한 내용과 설명이 필요합니다. –
내 개체가 ArrayList이므로 ArrayList 개체의 크기 메서드입니다 (목록의 요소 수를 반환합니다). – user1027336
'ArrayList'를 작성/읽는 중 왜 읽은 개체를'MyObject'에 캐스팅합니까? –