c++ - 在整个网络中广播自己的IP

标签 c++ c sockets networking broadcast

我想知道是否有更简单的方法使用 C 或 C++ 将我自己的 IP 广播到我网络上特定端口上的所有设备

我不太了解套接字编程,因为我的大多数应用程序不需要网络。我调查了一下,I found one piece of code这看起来很有希望,尽管它并不完全是广播,因为它发送到特定的 IP 地址。

有没有一种方法可以一次性广播到 192.168.1.0/255 之间的地址,或者我是否需要通过这些地址循环然后自己向他们发送数据包?

编辑:我问的是 C++ 实现,而不是网络基础设施。这就是为什么我链接上面的链接。

最佳答案

向网络的广播地址发送UDP数据报。 UDP 数据报将包含原始 IP 地址。网络中的其他应用程序可以从 UDP 数据报中获取“您的”IP 地址。

有没有一种方法可以一次性广播到 192.168.1.0/255 之间的地址,或者我是否需要通过这些地址循环然后自己向它们发送数据包?

在每个 IP 网络中都有一个地址,称为广播地址,网络中的所有设备都可以通过该地址接收数据报。可在此处找到更多信息:http://en.wikipedia.org/wiki/Broadcast_address

我问的是 C++ 实现,而不是网络基础设施。这就是为什么我链接上面的链接。

这个例子可能会有帮助: https://www.cs.rutgers.edu/~pxk/417/notes/sockets/udp.html

关于c++ - 在整个网络中广播自己的IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29980435/

相关文章:

c++ - 在 std::for_each 中使用 std::get<>()

c++ - 从一个函数返回多个字符串

c - 使用 sscanf 将 "0x0"解析为两个数字

c - 不明白为什么结果是一

C 控制台 - 分隔不同的值

c++ - 链表、树等的递归析构函数不好吗?

c++ - 为什么以下代码不会产生段错误?

sockets - 如何通过套接字连接到虚拟机

c - 未正确发送文件。 socket 。 C

PHP websocket 使用 socket_recv() - 我会收到部分帧吗?