| [ CnUnix ] in KIDS 글 쓴 이(By): heloise (오후의햇살) 날 짜 (Date): 2003년 9월 28일 일요일 오후 01시 56분 46초 제 목(Title): Java ObjectInputStream... 자바에 관한 질문입니다. 그냥 이 보드가 답이 가장 빠를 것 같아서 여기에 질문을 올리기로 했는데, 혹시 보드를 옮기기를 원하신다면, 그렇게 하도록 하겠습니다. 소켓을 통해, 데이타를 주고받을 때, ObjectInputStream, ObjectOutputStream 을 사용하고 싶은데, (어떻게 쓰는 건지 잘 몰라서) 잘 작동되지 않습니다. 아주 간단한 테스트케이스를 만들어봤는데, 아래 코드의 Server에서 "how are you" 라는 메시지를 보내도, Client에서 받지 못하는 것 같습니다. 이 코드를, ObjectInputStream, ObjectOutputStream 대신 InputStream, OutputStream을 써서 작동시키면, 잘 작동이 되는데, 뭐가 잘못된 것일까요? 미리 감사드립니다. ============================= 작동하지 않는 예 ================== =========== Server.java ========================== import java.net.*; import java.io.*; class Server { public static void main(String args[]) throws Exception { int serverport = Integer.parseInt(args[0]); ServerSocket Listen = new ServerSocket(serverport); Socket s = Listen.accept(); OutputStream out = s.getOutputStream(); ObjectOutputStream Out = new ObjectOutputStream(out); for (int i=0; i<5; i++) { String greeting = new String("how are you\n"); Out.writeObject(greeting); System.out.println("sending : "+greeting); } } } =============================================== ===================== Client.java ============= import java.net.*; import java.io.*; class Client { public static void main(String args[]) throws Exception { String routerhost = args[0]; int routerport = Integer.parseInt(args[1]); System.out.println("connecting to " + routerhost + " for port number " + routerport); Socket s = new Socket(routerhost, routerport); InputStream in = s.getInputStream(); ObjectInputStream In = new ObjectInputStream(in); String str; while(true) { if (In.available() != 0) { str = (String) In.readObject(); System.out.println(str); } } } } ================================================== |