信息需要传递给另一个线程
Information need to pass to another thread
我是linux领域的新手程序员。我基本上是一个熟悉c语言的微控制器程序员。现在我对PC编程有点兴趣,需要一些输入。
我正在打开一个套接字并发送一个广播寻找我的嵌入式设备在网络上。首先,我正在探测机器上的接口,并将在每个子网中广播一个带有签名的呼叫到我的设备。设备正在监听该特定端口,并使用其签名进行响应。然后程序获得我的设备的ip和其他细节,并将开始通信。我在每个接口发送一个函数调用,为了避免阻塞,我正在创建另一个监听线程来获得响应,这可能需要一些时间才能到达。在收到回应时,我需要通知其他线程关于这一点和数据要给他们。在这种情况下,哪种方法是最好的呢?信号,信息,标志什么的?由于我也需要在windows中实现此代码,如果可以使用在两个平台中都可能使用的机制,那将是很好的。请建议罗伊·托马斯
这是一个经典的网络编程问题。就我个人而言,当我在c++中进行这个级别的网络编程时,我使用c++ POCO库(参见此)。
没有指定使用UDP还是TCP。如果您使用TCP,库提供了称为TCPServer框架的东西来处理这些问题,即管理处理连接的工作线程池。
这些幻灯片,从"TCPServer框架"开始,解释了原理。
然后你可以使用FIFO在你的线程或POCO库通知之间进行通信。
看看Qt Creator,它是一个跨平台的c++ IDE,它对信号和插槽有很好的实现。
它有自己的函数库,扩展了STL和一些非常好的线程,你应该看看。
我知道这可能不是你想要的答案,但我每天都使用Qt,它很棒!有任何问题都可以问
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 在另一个线程中调用luaL_error会引发qWarning
- 最佳做法是从另一个线程访问 qml 中的Q_PROPERTY
- C++线程:如何在一个线程仍在运行时阻止另一个线程执行 (Win32)
- 结束另一个线程中使用的对象的生存期
- 从不同进程中的另一个线程挂起/恢复线程或进程
- 两个线程一个使用流 Api,另一个线程创建文件失败并出现错误ERROR_SHARING_VIOLATION
- 计时器是否从另一个线程启动?
- 互斥,Windows 10,c ++,在一个线程上获取,在另一个线程上发布
- Qt 在另一个线程中无限循环
- 在销毁期间从另一个线程调用对象上调用方法是否未定义行为?
- 从另一个线程发出信号是否安全?
- AMQP-CPP,libev >停止ev_loop来自另一个线程
- 在没有任何锁的情况下加入另一个线程后是否需要内存围栏?
- ::grpc::ServerReaderWriter 对象在另一个线程中一段时间后无法调用
- 如何在 qt 中从另一个线程运行 qt并发时关闭程序
- C++将互斥锁锁定为来自另一个线程
- QTcpSocket:消息不是从另一个线程发送的
- 如何从另一个线程调用颤振引擎方法
- 在另一个线程上发出 QObject 信号的正确方法?