クライアントからサーバーに int 値を送信しようとしました。これは、以下で使用しているクライアント コードです。
_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);
}
しかし、無効なストリーム ヘッダー エラーが発生しています。
無効なストリーム ヘッダー: 0000002B で java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:781) で java.io.ObjectInputStream.(ObjectInputStream.java:278) で ServiceRequest.run(ServiceRequest.java:24) で java.util. concurrent.Executors$RunnableAdapter.call(Executors.java:439) の java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) の java.util.concurrent.FutureTask.run(FutureTask.java:138) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) で java.lang.Thread.run(Thread.java) :680)
誰がエラーの原因を知っていますか? コードの設定が不適切ですか?