【发布时间】:2010-09-24 22:05:16
【问题描述】:
UDP 不发回任何确认,但它会发送任何响应吗?
我已经设置了客户端服务器 UDP 程序。如果我让客户端向不存在的服务器发送数据,那么客户端会收到任何响应吗?
我的假设是这样的;
客户端-->广播服务器地址(ARP) 服务器 --> 用它的mac地址(ARP)回复客户端 客户端向服务器发送数据(UDP)
在任何情况下,客户端都只会收到 ARP 响应。如果服务器存在与否,它不会得到任何 UDP 响应?
客户端正在使用 sendto 函数发送数据。我们可以在 sendto 调用后得到错误信息。
所以我的问题是当客户没有得到任何响应时如何获得这些信息。 错误码可以从 WSAGetLastError 中获取。
我尝试将数据发送到不存在的主机并且 sendto 调用成功。根据文档,它应该失败并返回值 SOCKET_ERROR。
有什么想法吗??
【问题讨论】:
-
有点担心您正在使用 UDP 并提出这个问题。这可能意味着您应该使用 TCP。
-
我想知道您的不存在的主机是否有一个虚构的 IP 地址与数据报的来源在同一子网中,或者它是否位于路由器外部。