当前位置:  开发笔记 > 运维 > 正文

UDP响应

如何解决《UDP响应》经验,为你挑选了2个好方法。

UDP不会发回任何确认,但它会发送任何响应吗?

我已经设置了客户端服务器UDP程序.如果我让客户端向不存在的服务器发送数据,那么客户端会收到任何响应吗?

我的假设是;

客户端 - >广播服务器地址(ARP)服务器 - >使用其mac地址(ARP)回复客户端客户端向服务器发送数据(UDP)

在任何情况下,客户端只会收到ARP响应.如果服务器存在与否,它将不会获得任何UDP响应?

客户端使用sendto函数发送数据.我们可以在sendto调用后获取错误信息.

所以我的问题是当客户端没有得到任何响应时这些信息是如何可用的.错误代码可以从WSAGetLastError获取.

我试图将数据发送到不存在的主机并发送到调用成功.根据文档,它应该失败,返回值为SOCKET_ERROR.

有什么想法吗??



1> M. Utku ALTI..:

您永远不会收到错误,也不会收到未到达目标的UDP数据包的通知.



2> David Schwar..:

sendto电话没有失败.数据报已发送到目的地.

数据报的接收者或路上的某个路由器可能会返回错误响应(主机不可达,端口不可达,超出TTL).但是sendto当你的系统收到它时,这个电话会成为历史.一些操作系统确实提供了一种方法来查找发生的情况,通常是通过getsockopt呼叫.但是,由于您无法依赖于错误回复,因为它取决于您无法控制的网络条件,因此通常最好忽略它.

在UDP之上分层的敏感协议使用回复.如果你没有收到回复,那么另一端没有得到你的数据报,或者回复没有回复给你.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有