udp的包大小有限制,因此不适于发送Java对象。
不过你确认你的Java对象很小,也不妨试一下。

解决方案 »

  1.   

    对了,忘了告诉你方法:
    其实,对象的发送和具体的通信关系不大,主要是要将可序列化的对象生成字节流即可发送,或者存储等等!!
    首先你等待发送的对象必须继承接口Serializable。
    然后可以参考下面的一个函数。
        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()方法和具体的通信相关了,大概我不用介绍怎样将一个字节数组通过...来发送了吧!
    接收到的数组组成对象:
            ByteArrayInputStream bais = new ByteArrayInputStream(dataq);
            ObjectInputStream ois = null;
            byte arr[] = null;
            ois = new ObjectInputStream(bais);
            Object obj = ois.readObject();
    祝各位元旦快乐!
      

  2.   

    關鍵是要求你的類继承接口Serializable。