2012-11-06 33 views
0

我有一个应用程序正在发送UDP数据包给接收器,如果我这样做,我应该在发送每个数据包之间有一个延迟,以避免使接收器不堪重负,如何设置延迟时间?发送数据包之间应该有延迟吗?

注意:我通过不可靠的网络发送文本文件。

 for(int x = 0; x < len; x++) 
     { 
       send_msg(packet); 
       Thread.sleep(200); //Should I have this? 
     } 
+0

为什么你认为服务器需要延迟?如果网络不可靠,当服务器没有收到数据包时,你如何得到通知?如果你需要可靠的传输,你为什么使用UDP而不是TCP? –

+0

@JimGarrison我正在开发通过UDP进行可靠的数据传输,因此接收方会发回应答,我一直在想,在接收方处理一个数据包时,接收到的数据包将不会被接收,因为它仍然会处理第一个到达分组。 –

+0

你为什么重新发明轮子? TCP不提供你所需要的吗? –

回答

1

让操作系统为您处理时间。发送是阻塞的,所以它将依靠OS缓冲区和相关的东西。包裹将被交付给serer或丢失,但只要他们交付 - 然后同行将被通知。它可能会推迟处理或将数据包放入队列。