我正在为特定类型的网络多媒体设备实现一种 IP 查找器。我想找出 LAN 中所有该类型的活动设备,以及它们的 IP 地址和其他详细信息。
设备有自己的设备发现方式。
它的工作原理如下:客户端通过 UDP 在 LAN 上发送广播请求。
目的端口号是固定的。
作为回应,LAN 中所有了解此请求格式的服务器都会响应此请求,提供有关它们自己的信息。
我正在使用 sendto() 广播 UDP 请求消息。
现在我的问题是我不知道有多少设备(即服务器)会响应请求。
我必须调用 recvfrom() 多少次?
我什么时候才能知道我已经处理了所有设备的响应?
或者一般来说,recvfrom() 是从多个服务器接收响应的正确选择吗?
有没有更好的(或正确的,如果我在这里错了)方法来完成同样的事情?
我正在使用 C/C++ 编程,计划同时为 Windows 和 Linux 编写代码。
提前谢谢了。
编辑:因此,在所有网络编程向导的帮助下,我找到了解决问题的方法 :)
select() 对我来说就是这样……
非常感谢所有抽出时间提供帮助的人我