我试图从客户端发送一个int值到服务器。这是我使用下面的客户端代码:错误而使用的InputStreamReader与Java
_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处 ServiceRequest.run java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:781) 在java.io.ObjectInputStream中(ObjectInputStream.java:278)(ServiceRequest。 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。并发.FutureTask.run(FutureTask.java:138)at java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.T hreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:918) 在java.lang.Thread.run(Thread.java:680)
有谁知道是什么原因造成的错误?我的代码安装不正确?
你为什么要创建一个'InputStreamReader的,在'BufferedReader'包裹,然后完全无视它? – 2013-04-30 16:17:26