黑马程序员技术交流社区

标题: 关于序列化Socket传输的问题 [打印本页]

作者: 陈军    时间: 2012-11-20 11:50
标题: 关于序列化Socket传输的问题
本帖最后由 陈军 于 2012-11-22 09:19 编辑

自己在做一个小项目时,用Socket传输一个对象,假设对象是aa(A aa=new A(),aa.set...)
我用了序列化的流。ObjectInpuStream 和ObjectOutputStream
但是如果我直接用writeObject(aa)写到输出流时,
服务端读取的时候获取不到。不明是什么原因。虽然最后我用集合的方式解决了。但是这个问题还没想通。
下面是写和读的关键代码:

public void sendCertifyInfo1(TransFileProtocol filePro)throws Exception{
                                                  
                           ObjectOutputStream out=new ObjectOutputStream(s.getOutputStream());
                           out.writeObject(filePro);                                
                           out.flush();
                                                        
        }
         while (true) {
        try {
              Socket s = this.accept();
             String ip = s.getInetAddress().getHostAddress();
                                
             ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
                                System.out.println("开始获取协议");
                                                                                        TransFileProtocol tf=(TransFileProtocol )ois.readObject();
                                                               
                           
                                System.out.println("获取成功");
                                
               
                                System.out.println(tf.isStartFlag());
                        } catch (Exception e) {
                                throw new RuntimeException(e);
                        }
        }

其中TransFileProtocol 是一个小协议。

作者: 王阳    时间: 2012-11-20 20:51
TransFileProtocol filePro 这个参数是什么??
作者: 王阳    时间: 2012-11-20 20:53
不晓得你上面的代码是错是对,如果是对的,那就是说你写入的是TransFileProtocol,所以接受也得拿这个。而且拿集合保存序列化的对象,然后写入,这样不是更方便吗?
作者: 陈军    时间: 2012-11-22 09:18
王阳 发表于 2012-11-20 20:51
TransFileProtocol filePro 这个参数是什么??

这是一个自己做的小协议类
作者: 王阳    时间: 2012-11-22 19:47
陈军 发表于 2012-11-22 09:18
这是一个自己做的小协议类

这个,就真不晓得了。不过建议你还是保存在集合里好一点。起码读写时候会方便点,只用读写一次,资源消耗较低




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2