【问题标题】:Read whole Message from UDP Socket从 UDP 套接字读取整个消息
【发布时间】:2011-01-27 20:47:08
【问题描述】:

我正在通过UDP 套接字发送数据,并使用read() 在循环中接收它。 输入数据如下所示:

String 1
String 2
String 3
....

我用send() 写出数据,每个字符串一个接一个(循环)。 如何确保我可以以正确的方式在接收端重建数据(当我放入字符串时)?

接收到的数据可以像这样在行中间的任意位置拆分:

Packet 0: Stri
Packet 1: ng 1
Packet 2: String 2 St
Packet 3: ring 3
...

我必须引入一个自定义的END OF MESSAGE 字节序列来告诉吗?因为EOF 在这里帮不上忙。

我需要能够判断一个包是否已损坏,以及属于一起的数据块在哪里开始和结束,因为我将它们以S 开头并以Number 结尾!我不能使用TCP,因为我需要广播/多播支持。

【问题讨论】:

    标签: sockets unix bsd darwin


    【解决方案1】:

    如果您希望所有消息都以相同的顺序到达,并具有“消息结束”指示,那么 TCP 可能更好:-)

    (TCP 开箱即用。)

    【讨论】:

      猜你喜欢
      • 2014-05-14
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 2012-06-17
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      相关资源
      最近更新 更多