开发者社区 问答 正文

java socketTCP协议网络传输若干个序列化对象:报错

我服务器端用的是ObjectOuputStream的writeObject()方法将一个个的对象用循环发送到客户端,客户端则用ObjectInputStream的readObject()方法接收,而且我是根据服务器端发送过来的流对象个数用循环控制接收的,但是readObject()方法一直都是处于阻塞状态,求大家帮帮忙哈,谢谢了。

以下是我的代码:

服务器端发送代码:

in = new DataInputStream(you.getInputStream());
commond=in.readUTF();  //读取客户端的命令
dealCommond(commond,you.getInetAddress());  // 对命令进行相应的处理获得流对象和其数目num
objout = new ObjectOutputStream(you.getOutputStream());
//将对象流发送至手机端
objout.writeInt(num);  // 把流对象个数发给客户端
NewsObject obj=null;  //序列化对象
while(iter.hasNext()){
obj = (NewsObject) iter.next();
   objout.writeObject(obj);
}
System.out.println("新闻对象发送完毕");
in.close();
objout.close();
you.close();


客户端接收代码:

out = new DataOutputStream(socket.getOutputStream());
   out.writeUTF(str);  //客户端发送命令给服务器端
   in = new ObjectInputStream(socket.getInputStream());
   num = in.read();
   Log.i("File", "收到新闻条数: "+num);
   
   for(i=0;i<num;i++){
    NewsObject obj = (NewsObject) in.readObject();
    tofile.writeObject(obj);  //将流对象写入文件
   }
   in.close();
   tofile.close();
   socket.close();

展开
收起
kun坤 2020-06-06 22:19:32 919 分享 版权
0 条回答
写回答
取消 提交回答