您的位置:首页 > 编程语言 > Java开发

Java UDP协议传对象

2011-09-21 15:12 435 查看
 首先所传对象必须是可序列化的

public class Data implements Serializable {

}

发送对象

   DatagramSocket socket = new DatagramSocket();

   //DatagramPacket(byte[] buf, int length, int length, InetAddress address, int port)

   DatagramPacket packet = new DatagramPacket(new byte[0], 0, InetAddress.getByName("127.0.0.1"), 1688);

   Data data = new Data();

   //对象->对象流->字节数组流->字节数组

   ByteArrayOutputStream byteArrayStream = new ByteArrayOutputStream();

   ObjectOutputStream objectStream = new ObjectOutputStream(byteArrayStream);

   objectStream.writeObject(data);

   byte[] arr = byteArrayStream.toByteArray();

   packet.setData(arr);//填充DatagramPacket

   socket.send(packet);//发送

   objectStream.close();

   byteArrayStream.close();

接收对象

   DatagramSocket socket = new DatagramSocket(1688);//监听端口号,1688

   byte[] buff = new byte[1024];

   DatagramPacket packet = new DatagramPacket(buff, buff.length);

   socket.receive(packet);

   ByteArrayInputStream byteArrayStram = new ByteArrayInputStream(buff);

   ObjectInputStream objectStream = new ObjectInputStream(byteArrayStram);

   Data data = (Data) objectStream.readObject();

   objectStream.close();

   byteArrayStram.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java byte socket class