任何类似于 boost::asio 中的 QSocketNotifier 的东西
Anything similar to QSocketNotifier in boost::asio?
SOCKET sock = generate_socket("fileWizard");
notifier = new QSocketNotifier(sock, QSocketNotifier::Read, this);
connect(notifier, SIGNAL(activate(int)), this, some_slot(int));
SOCKET是一个win32 SOCKET,"generate_socket"的功能是创建一个套接字连接到本地exe,称为"fileWizard"(不知道函数generate_socket的实现细节(。对于Qt,我们总是生成插座并连接信号和插槽,但在asio中找不到类似的例子。
还不熟悉套接字和asio,请告诉我您需要什么信息。谢谢
编辑:
代码的目的是监视SOCKET,如果它有任何变化,它将回调。
类似于asio(Daytime.3 - 异步TCP日间服务器(的示例让我困惑的部分是
1 : 如何将套接字转换为 boost::asio 套接字之一?
2 : 如何监控套接字的"更改"(任何内容都可以读取((我们的前辈称之为文件描述符(?按read_async?
- Boost.Asio 套接字支持通过重载构造函数在现有本机套接字之上创建。 例如,此构造函数可用于在现有本机套接字(如 Windows
SOCKET
(之上构建basic_stream_socket
。
虽然Boost.Asio - 不提供Qt的
QSocketNotifier
类的直接等价物,但Boost.Asio确实通过使用null_buffers()
支持反应堆式操作。 这两种方法都允许在事件发生时通知应用程序,例如当数据准备好从文件描述符读取时。 此事件通知功能允许每个事件循环与其他事件循环或第三方库集成。 有关使用null_buffers()
的完整示例,请参阅官方 Boost.Asio 非阻塞示例。
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 提升 ASIO 无法识别计时器对象
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- boost::asio如何生成多个协同程序,然后加入它们
- 即使我读取了所有内容,在FIFO上打开的QSocketNotifier也会一直启动
- 缓慢提升ASIO
- 从 Boost ASIO 获取 epoll 描述符 io_service对象
- 如何在 Boost.Asio 中使用 Zero-copy sendmsg/receive
- C++ Boost::asio串行通信与Arduino无法写入
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- 提升 Asio TCP 服务器 处理多个客户端
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 提升 ASIO - io_service 不要等待连接到线程
- 执行时使用 boost::asio::d eadline_timer 时出错
- Boost.Asio/OpenSSL HTTPS GET certificate trouble
- C++ boost::asio::ip::tcp::acceptor 有时不接受连接器?
- boost::asio data owning `ConstBufferSequence`
- 如何替换此示例代码片段中已弃用的handler_type_t或 boost::asio::handler_type?
- 任何类似于 boost::asio 中的 QSocketNotifier 的东西