news 2026/6/22 23:29:26

QLocalServer + QLocalSocket+QProcess

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QLocalServer + QLocalSocket+QProcess

目录

整体架构说明

公共文件 MsgStruct.h(两个项目都要有)

工程一:MainApp(主程序,QLocalServer + QProcess)

MainApp.pro

MainApp.h

MainApp.cpp

main.cpp(主程序入口)

工程二:SubProcess(子程序,QLocalSocket 客户端)

SubProcess.pro

SubClient.h

SubClient.cpp

main.cpp(子程序入口)

使用步骤

关键说明


整体架构说明

主程序 = QLocalServer(IPC 服务端) + QProcess(启动子进程)子进程 = QLocalSocket(IPC 客户端)流程:

  1. 主程序启动,创建 QLocalServer 监听本地管道;
  2. 主程序通过 QProcess 拉起子进程 exe;
  3. 子进程内部初始化 QLocalSocket,连接主程序本地服务;
  4. 主、子进程通过本地套接字双向收发自定义结构体消息;
  5. 主程序监听 QProcess 信号,感知子进程崩溃 / 退出。

下面给两套完整工程,包含 .pro、全部头文件、cpp,分为:

  1. MainApp(主程序:QLocalServer + QProcess)
  2. SubProcess(子程序:QLocalSocket 客户端)共用 MsgStruct.h,两个项目都复制一份。

公共文件 MsgStruct.h(两个项目都要有)

cpp

运行

#ifndef MSGSTRUCT_H #define MSGSTRUCT_H #include <QString> #include <QDataStream> struct Msg { int cmd; QString text; }; QDataStream& operator<<(QDataStream& ds, const Msg& m) { ds << m.cmd << m.text; return ds; } QDataStream& operator>>(QDataStream& ds, Msg& m) { ds >> m.cmd >> m.text; return ds; } #define SOCKET_NAME "MainAppLocalIPC" #endif

工程一:MainApp(主程序,QLocalServer + QProcess)

MainApp.pro

pro

QT += core QT -= gui CONFIG += c++11 console CONFIG -= app_bundle DEFINES += QT_DEPRECATED_WARNINGS SOURCES += \ main.cpp \ MainApp.cpp HEADERS += \ MainApp.h \ MsgStruct.h

MainApp.h

cpp

运行

#ifndef MAINAPP_H #define MAINAPP_H #include <QObject> #include <QLocalServer> #include <QLocalSocket> #include <QProcess> #include "MsgStruct.h" class MainApp : public QObject { Q_OBJECT public: explicit MainApp(QObject *p = nullptr); void startServer(); void launchSubProcess(const QString& subExePath); void sendAllClientMsg(const Msg& msg); private: QLocalServer* m_localServer; QProcess* m_subProcess; private slots: void onNewClient(); void onSocketReadyRead(); void onClientDisconnect(); void onProcStarted(); void onProcStd
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 23:26:35

嵌入式外设驱动实战:RCM、RNGA、RTC、SAI模块开发与避坑指南

1. 项目概述与驱动开发核心价值在嵌入式开发这行干了十几年&#xff0c;我越来越觉得&#xff0c;外设驱动这玩意儿&#xff0c;是连接芯片灵魂&#xff08;硬件&#xff09;与应用血肉&#xff08;软件&#xff09;的那根“大动脉”。你写的应用再精妙&#xff0c;算法再高效&…

作者头像 李华
网站建设 2026/6/22 23:22:54

PUBG-Logitech:基于图像识别的智能压枪解决方案完全指南

PUBG-Logitech&#xff1a;基于图像识别的智能压枪解决方案完全指南 【免费下载链接】PUBG-Logitech PUBG罗技鼠标宏自动识别压枪 项目地址: https://gitcode.com/gh_mirrors/pu/PUBG-Logitech PUBG-Logitech是一款创新的开源项目&#xff0c;通过计算机视觉技术和罗技鼠…

作者头像 李华
网站建设 2026/6/22 23:22:44

目录穿越与文件包含漏洞组合利用:从原理到实战的Web安全攻防

1. 项目概述&#xff1a;当目录穿越遇上文件包含在Web安全测试和渗透测试的日常工作中&#xff0c;我们经常会遇到一些看似独立、实则关联紧密的漏洞。其中&#xff0c;“目录穿越漏洞”和“文件包含漏洞”就是一对经典的“黄金搭档”。单独来看&#xff0c;它们各自都有一定的…

作者头像 李华
网站建设 2026/6/22 23:20:56

让老Mac焕发新生:OpenCore Legacy Patcher完全指南 [特殊字符]

让老Mac焕发新生&#xff1a;OpenCore Legacy Patcher完全指南 &#x1f680; 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为老旧Mac无法升级最新macO…

作者头像 李华
网站建设 2026/6/22 23:10:02

VLM感知三象限:从表征保真度到跨模态对齐的工程诊断框架

1. 这不是又一篇“VLM综述”&#xff0c;而是Lucas Beyer亲手拆解的视觉语言模型认知底层你点开这篇&#xff0c;大概率刚在arXiv刷到Lucas Beyer那篇被反复引用的《On the Perception of Visual Language Models》——标题没提“benchmark”“SOTA”“zero-shot”&#xff0c;…

作者头像 李华
网站建设 2026/6/22 23:00:24

新闻推荐系统中的用户偏好悖论与算法优化

1. 新闻推荐系统中的用户偏好悖论&#xff1a;当算法与价值观背道而驰在信息爆炸的时代&#xff0c;新闻推荐系统已成为我们获取资讯的主要门户。但你是否曾有这样的体验&#xff1a;明明希望看到深度、客观的新闻报道&#xff0c;算法却不断向你推送耸人听闻的标题党和极端观点…

作者头像 李华