首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

软件之间怎么相互通信

2012-05-05 
软件之间如何相互通信最近想做一个这样的程序:想让程序运行起来后知道有多少该程序在运行,如果每个运行的

软件之间如何相互通信
最近想做一个这样的程序:想让程序运行起来后知道有多少该程序在运行,如果每个运行的程序都有一个唯一的ID的话,那么程序运行起来的最终效果应该是一运行起来就能看到其他运行该程序的ID列表(此时没有运行该程序的ID变灰),就像QQ一样一上来就看到有多少好友一样;实现这样的功能是什么样的思路,麻烦有做过相关程序的大牛来指点一下
  用服务器当然可以,每个程序一运行起来就向服务器发送“该结点激活"的消息,同时返回回已经运行起来的ID列表,进而在本地软件上显示出当前正在运行的ID列表,程序定时向服务器发送消息,同时取回最近的ID列表做更新,程序被关闭结束时再发送“该结点已终结”的消息,服务器对ID列表进行处理;
  除了以上的方法还有没有其他的方法可以实现上面的功能???

[解决办法]
这个,同一台机器可以用sharedMemory(QSharedMemory), 不同机器可以用tcp/ip.(QNetworkAccessManager, QTcpSocket,QTcpServer,QSslSocket)
Unix平台的可以用QtDBus
embedded linux平台可以用QCOP(QCopChannel)
[解决办法]
每启动一个exe之后,根据ID列表发送消息,有反馈的高亮,没有反馈的置灰。
已经启动的exe收到消息后将相应ID高亮,并做反馈。

热点排行