UDP 在数据报中发送两个字符串

UDP 在数据报中发送两个字符串

我想知道是否可以在 UDP 数据包的一个数据报中发送两个字符串。假设我的字符串 1 的文本为:unix,字符串 2 的文本为:linux。我不想合并字符串,但在传输时将它们分开

这是我在服务器 unix 上成功读取的工作代码

 String name1 = "unix"; 
    String name2 = "linux"; 
                toSend = name1.getBytes();
                DatagramPacket packSend = new DatagramPacket (toSend, toSend.length, ipConn, 9876); 
                connection.send(packSend);

两个创建 2 个单独的数据报包并分别发送数据是否明智?

答案1

您必须以某种方式序列化数据,要么使用通用格式(xml、json、uuencode,...),要么使用字符串中可能不会出现的任何分隔符(换行符,...),然后简单地拆分那个字符串。

如果您单独发送它们,请注意其中一个数据包可能会丢失,或者以不同的顺序接收,等等。因此,如果这些数据完全相关,那么在单个数据包中发送它就非常有意义。

答案2

如果您想将它们分开,则需要两个数据包,但更有效的方法是在单个数据包内传输它们,然后在接收器中拆分数据包。

相关内容