lqxue

常用链接

统计

book

tools

最新评论

用udp发送java对象

在一个java的socket连接中,用ObjectInputStream 和ObjectOutputStream可以很轻松的实现对Object的发送,但是如果没有建立socket连接,如何用udp包来发送Object对象呢?

    想想我们用udp发送数据的时候可以发送些什么呢?

    DatagramPacket里面可以装些什么呢? byte[]

   对,就是byte[], 那么我们要发送java对象的话就是想办法把一个Object转成byte[],然后再发送到目的地址,然后在接受方把byte转成Object就可以了。
   如何把一个Object转化成byte[]呢?我们可以利用ByteArrayOutputStream 这个类
    相信到这里,有些朋友已经知道了怎么做了。
    还是贴点代码吧!^_^

 
   public void SendInfo(int code, Object obj){
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = null;
        try{
           oos = new ObjectOutputStream(baos);
           oos.writeInt(code);
           oos.writeObject(obj);
           oos.flush();
           byte arr[] = baos.toByteArray();
           if(arr == null)return;
           SendDataToClient(arr);
           if(baos != null)baos.close();
           if(oos != null)oos.close();
        }catch(Exception e){
           FuncForServer.WriteErrMsg(
             "Exception in Sending data to server.", e);
        }
    }
其中SendDataToClient(arr);就不用我说了吧
      
然后接受方接受到了这个包后呢?
接收到的数组组成对象:
        ByteArrayInputStream bais = new ByteArrayInputStream(dataq);
        ObjectInputStream ois = null;
        byte arr[] = null;
        ois = new ObjectInputStream(bais);
        Object obj = ois.readObject();
obj就到了,呵呵!

posted on 2007-08-05 08:29 lqx 阅读(905) 评论(0)  编辑  收藏 所属分类: network


只有注册用户登录后才能发表评论。


网站导航: