繁体   English   中英

Java中的UDP数据包路由

[英]UDP Packet route in Java

我有一个考虑udp数据包寿命/路由的问题。 我有一个简单的客户端服务器UDP方案,在客户端具有发送调用,在服务器端具有接收调用。 假设发送方法被调用,而数据包实际上到达了另一端,但是服务器的代码执行尚未到达接收方法调用。 那个时候那个包裹发生了什么。 现在,我尝试通过简单的命令输入提示符在接收调用之前停止执行,稍等片刻,然后继续执行,并注意到已接收到数据包。 您能解释为什么会发生这种情况吗,就像它缓冲在另一个OSI级别上一样吗?

提前致谢。

每个TCP或UDP套接字都有一个发送缓冲区和一个接收缓冲区。 您的数据报在发送器处排队进入发送缓冲区,然后被发送,然后在接收器处排队进入接收缓冲区,然后从那里读取数据。

NB 与它无关。 TCP / IP不遵循OSI模型。 它有自己的先前模型。

“ receive”方法调用未接收到数据包。 如果该端口有一个UDP套接字“打开”,则表示已分配了缓冲区空间,这是NIC + OS放置数据的地方。 当您将其称为“接收”时,它只会出现在那里,如果那里有任何东西,则它会假装刚刚收到它。

我应该补充一点,如果缓冲区为空,则接收调用的确进入阻塞状态,等待操作系统通知某物已到达。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM