我试图将一个 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);
}
但我收到无效的流标头错误。
无效的流标头:在 java.io.ObjectInputStream.(ObjectInputStream.java:278) 在 java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:781) 在 java.util 的 ServiceRequest.run(ServiceRequest.java:24) 的 0000002B。 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)
有谁知道是什么导致了错误?我的代码设置不正确吗?