클라이언트에서 서버로 int 값을 보내려고했습니다.Java로 InputStreamReader를 사용하는 중 오류가 발생했습니다.
_port = 8071;
_socket = new Socket("localhost", _port);
Random rand = new Random();
int n = rand.nextInt(50) + 1;
DataOutputStream dos = new DataOutputStream(_socket.getOutputStream());
dos.writeInt(n);
dos.flush();
서버 코드
try {
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
ObjectInputStream in = null;
in = new ObjectInputStream(socket.getInputStream());
int ClientNumber= in.readInt();
System.out.println(ClientNumber);
}
하지만 잘못된 스트림 헤더 오류가 점점 오전 : 이것은 내가 아래 사용하고 클라이언트 코드입니다.
잘못된 스트림 헤더 :. java.io.ObjectInputStream.readStreamHeader (ObjectInputStream.java:781) java.io.ObjectInputStream의에서 (ObjectInputStream.java:278) ServiceRequest.run에서에서 0000002B (서비스 요청. java : 24) at java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:439) at java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java:303) at java.util. concurrent.FutureTask.run (FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (ThreadPoolExecutor.java:895) at java.util.concurrent.T java.lang.Thread.run (Thread.java:680)에서 hreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:918)
사람이 오류의 원인이 무엇인지 알고 있나요? 코드 설정이 잘못 되었습니까?
왜 InputStreamReader를 만들고, BufferedReader에 래핑 한 다음 완전히 무시합니까? –