为什么Android DatagramSocket.receive()在0毫秒内完成?

为什么Android DatagramSocket.receive()在0毫秒内完成?,android,udp,broadcast,Android,Udp,Broadcast,我正在编写一个Android应用程序,它接收UDP广播(从PC以10Hz的频率发送),我正在测量DataGramSocket.receive()前后的时间。通常,receive()需要100毫秒才能完成(正如10Hz数据所期望的那样),但通常我在receive()前后的时间差为0毫秒。这是否意味着数据包已被丢弃 这意味着在调用recv()之前数据包已经到达。但是recv()是否阻止了调用?(我检查了SO_TIMEOUT,它是0,所以它是无限的)。不应该接收阻塞并等待第二个数据包被接收?

我正在编写一个Android应用程序,它接收UDP广播(从PC以10Hz的频率发送),我正在测量DataGramSocket.receive()前后的时间。通常,receive()需要100毫秒才能完成(正如10Hz数据所期望的那样),但通常我在receive()前后的时间差为0毫秒。这是否意味着数据包已被丢弃

这意味着在调用recv()之前数据包已经到达。

但是recv()是否阻止了调用?(我检查了SO_TIMEOUT,它是0,所以它是无限的)。不应该接收阻塞并等待第二个数据包被接收?