【发布时间】:2018-10-23 21:22:42
【问题描述】:
我对 C 套接字编程比较陌生,我必须用 C 解决一个任务。 网络中有多个节点,每个节点都有自己的设置。每个节点每秒都会广播其当前设置。它还必须监听来自其他节点的这些广播并存储它们的设置。最后,它必须能够直接向另一个节点发送数据包。我打算将所有节点设置存储在一个结构数组中。
我已经设法完成了广播,这是在它自己的线程中实现的,但我不确定从网络中未知数量的其他节点接收数据包并存储它们的地址以发送数据包的正确程序是什么以后直接发给他们。
有什么建议吗?
谢谢!
【问题讨论】:
-
这不是一个“为我写代码”的网站。发布您迄今为止尝试过的内容。
-
我并不是真的在寻找完整的代码,更像是一些如何进行的建议。到目前为止,我已经考虑过有一个单独的线程来接收所有传入的数据包并将源 IP 存储在节点设置结构中。这会是一个有效的解决方案吗?
-
没有“从特定节点接收”。如果绑定套接字,则将其绑定到本地适配器。您从该套接字的所有节点获取数据包。如果你想通过任何适配器接收你的套接字绑定到 INADDR_ANY。
-
你基本上会尽可能快地接收 UDP 消息(socket.ReceiveFrom 或类似的东西会给你原始地址)并将它们传递给你的处理逻辑。
标签: c sockets udp broadcast recvfrom