【发布时间】:2014-09-08 12:15:32
【问题描述】:
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”的功能是创建一个socket连接到一个名为“fileWizard”的本地exe(不知道函数generate_socket的实现细节)。 使用Qt,我们总是生成socket并连接信号和槽,但是在asio中找不到类似的例子。
对socket和asio还不熟悉,请告诉我你需要什么信息。谢谢
编辑:
代码的作用是监控SOCKET,如果有任何变化,就会回调。
类似asio(Daytime.3 - An asynchronous TCP daytime server)的例子 让我困惑的部分是
1:如何将 SOCKET 转换为 boost::asio 套接字之一?
2:如何监控socket(我们前辈称之为文件描述符)的“变化”(任何可以读取的)?通过read_async?
【问题讨论】:
-
也许你可以说出这一切的作用。 Win32 确实有套接字,但它们没有命名(即命名管道,类似于 UNIX 域套接字)。此外,
connect(notifier, SIGNAL(activate(int)), ...这行对于不太了解 Qt 的 Asio 专家来说意义不大。也许您可以解释您想要实现的目标,而不是在没有上下文的情况下提出不可能的“为我翻译这段代码”的谜语? -
@sehe 谢谢你的建议,对不起我的无知。我做了一些编辑,希望这能让我的问题更容易理解
标签: c++ qt sockets boost boost-asio