我的局域网中有嵌入式设备,计算机中有Linux中的c ++应用程序。我在C ++的子网广播地址上进行了UDP广播,我的设备返回了带签名的消息。他们俩现在互相拥有IP地址。我需要从我的C ++发送UDP数据包专门发送到我的设备IP。 我的设备的初始调用是通过UDP完成的,但它在套接字选项中使用了广播选项。 我对数据包生成工具的一些实验给我的印象是UDP使用MAC ID来查找目的地。 那么,如果我想在我的局域网中向我的特定IP发送UDP数据包,那么C ++中的方法应该是什么? 感谢
答案 0 :(得分:1)
答案 1 :(得分:0)
您没有指定O / S,但是......
如果需要,可以使用connect使用UDP套接字。这意味着进一步发送到该套接字将转到您“连接”到的IP,尽管UDP是无连接的,但所有这些都是。
答案 2 :(得分:0)
根据您对stefaanv的回应,听起来您的问题实际上是“如何从线程A获取IP地址到线程B?”,其中线程A接收对广播消息的响应,而线程B执行特定于设备的通信。
你可以做到这一点的一种方法是从线程A创建线程B,并将IP地址作为参数传递给线程B的函数。这样,线程B将从一开始就知道要与之通信的IP地址。
如果线程B必须在线程A之前启动并运行,则可以使用全局变量共享IP地址,并使用例如一个信号量,以便线程A可以在设置IP地址时告诉线程B.只需确保线程A是唯一写入该全局变量的线程,否则您将不得不设置另一层同步,例如使用互斥锁,以确保一次只能通过一个线程写入IP地址。