0

我是linux领域的新手程序员。我基本上是一个熟悉 C 的 MicroController 程序员。现在我喜欢小型 PC 编程,需要一些输入。

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

4

2 回答 2

0

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

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

我知道这可能不是您正在寻找的答案,但我每天都使用 Qt,它很棒!所以随时问任何问题...

于 2013-06-05T08:26:18.377 回答
0

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

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

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

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

于 2013-06-05T07:38:57.050 回答