现在有一个字符串数组S[3],想把S[0],S[1],S[2]这三个字符串通过一个DatagramPacket发送出去有怎么做呢?
DatagramPacket只能发送byte[]类型的对象,怎样才能通过一个byte[]对象将字符串数组放入DatagramPacket中呢?

解决方案 »

  1.   

    那样只能将一个字符串转为BYTE[]形的,我想要将若干个字符串连接在一起转为一个BYTE[],在接收方再能把这些字符串分解出来
      

  2.   

    1
    自己定义报文头,没个string发送前都加上一个头,描述这个string有多长,然后发送
    接收后反向解析,知道长度就可以把3个String分开了2:
    用ObjectOutputStream来封装一下,然后通过对象流来发送,这样直接就可以把s发送过去。接收者也要用对象流收,收的Object就是S
      

  3.   

    我的需求是这样的:服务器将与它连接的所有客户机的IP地址打成一个包发送出去,不知道楼上的方法行不 对于您说的自定义报文头能给个DEMO吗
      

  4.   

    用上面的方法可以加报文头
    简单点
    DataOutputStream dos;
    byte buf[]=str.getBytes();
    dos.writeInt(buf.length);
    dos.write(buf);
    dos.flush();
    接受
    DataInputStream dis;
    int len=dis.readInt();
    byte buf[]=new byte[len];
    dis.read(buf);
    System.out.println(new String(buf));
      

  5.   

    把要的东西封装在一个对象中
    然后用DataOutputStream写对象不就行了。