我在用java做udp的socket通信,我知道的好像只能通过datagrampacket传递字符串String,但是我现在有一个list或者table,里面有很多内容,希望从一段发送给另一端,这样的非字符串的东西,怎么通过udp socket成功发送呢?谢谢

解决方案 »

  1.   

    不过是udp还是tcp,实际传送的都是一段二进制文本
    一个简单的办法是自定义一个序列化规则
    比如一个List的内容可以编写成 string1|string2|string...|stringN
    同样的,对象也可以定义一个顺序,写的时候先序列化成字符串,收的时候反序列化这个字符串你可以想象一下URL是怎么样传值的
    http://host/url?name=param&name=param
      

  2.   


    首先非常感谢您!
    如果您有几分钟的时间,能麻烦帮我写个小例子吗?
    比如有个
    Person
    {
        int age;
        String name;
    }
    怎么把它序列化后,用UPD的datagramPacket方式发送呢?
      

  3.   

    我晕...
    你就写成
    age=20;name=zhangsan|age=21;name=lisi|.....
    接收到以后做2个splite,拿数据把数据重设过去不就完了