Java UDP协议传对象

 首先所传对象必须是可序列化的
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();

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值