我服务器端用的是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();
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。