qt浏览器插件中的IPC

Posted

技术标签:

【中文标题】qt浏览器插件中的IPC【英文标题】:IPC in qt browser plugins 【发布时间】:2010-05-06 02:08:09 【问题描述】:

我有一个简单的疑问。 qt中的ipc机制在我们使用它开发浏览器插件时是否有效?我问这个的原因是我可以很容易地让 QLocalSocket 和 QLocalServer 通信在 qt 应用程序中工作,但是当我在浏览器插件 dll 中编写一段类似的代码时,我发现服务器根本不接受新连接.

这是我在服务器中所做的:

server = new QLocalServer(this);
            if( !server->listen("myServer"))
            
                writeFile("Listen failed");
            
            connect(server, SIGNAL(newConnection()), this, SLOT(handleConn()),Qt::QueuedConnection);

这就是我在客户端所做的:

client = new QLocalSocket(this);
            client->abort();
            QObject::connect(client,SIGNAL(connected()),this,SLOT(connClient()),Qt::QueuedConnection);
            client->connectToServer("myServer");

在我调用 connectToServer 后,我的客户端发出 connected() 信号并调用 connClient() 插槽。但是,在服务器端,没有发出信号。它似乎根本没有收到任何连接。

任何帮助将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

浏览器插件不要调用processEvent。 它可以添加timer 事件并调用QApplication::processEvents();

【讨论】:

以上是关于qt浏览器插件中的IPC的主要内容,如果未能解决你的问题,请参考以下文章

Boost IPC 等效 (qt?)

QT调用IE浏览器COM插件完成网页浏览

设置qt插件路径

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器client 小结

Qt发起Http/Https请求

Firebreath 中的 IPC (boost c++)