2011-01-27 40 views
1

我通过UDP套接字发送数据,并通过read()以循环方式接收数据。 输入数据看起来像这样:从UDP套接字读取整个消息

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,因为我需要广播/组播支持。

回答

1

如果你希望所有的邮件到达,并以相同的顺序,他们被送到,并有指示“消息的结束”,也许TCP是:-)

更好

(TCP,这一切出该盒)。