信息需要传递给另一个线程

Information need to pass to another thread

本文关键字:另一个 线程 信息      更新时间:2023-10-16

我是linux领域的新手程序员。我基本上是一个熟悉c语言的微控制器程序员。现在我对PC编程有点兴趣,需要一些输入。

我正在打开一个套接字并发送一个广播寻找我的嵌入式设备在网络上。首先,我正在探测机器上的接口,并将在每个子网中广播一个带有签名的呼叫到我的设备。设备正在监听该特定端口,并使用其签名进行响应。然后程序获得我的设备的ip和其他细节,并将开始通信。我在每个接口发送一个函数调用,为了避免阻塞,我正在创建另一个监听线程来获得响应,这可能需要一些时间才能到达。在收到回应时,我需要通知其他线程关于这一点和数据要给他们。在这种情况下,哪种方法是最好的呢?信号,信息,标志什么的?由于我也需要在windows中实现此代码,如果可以使用在两个平台中都可能使用的机制,那将是很好的。请建议罗伊·托马斯

这是一个经典的网络编程问题。就我个人而言,当我在c++中进行这个级别的网络编程时,我使用c++ POCO库(参见此)。

没有指定使用UDP还是TCP。如果您使用TCP,库提供了称为TCPServer框架的东西来处理这些问题,即管理处理连接的工作线程池。

这些幻灯片,从"TCPServer框架"开始,解释了原理。

然后你可以使用FIFO在你的线程或POCO库通知之间进行通信。

看看Qt Creator,它是一个跨平台的c++ IDE,它对信号和插槽有很好的实现。

它有自己的函数库,扩展了STL和一些非常好的线程,你应该看看。

我知道这可能不是你想要的答案,但我每天都使用Qt,它很棒!有任何问题都可以问