以下是使用QLocalSocket/QLocalServer进行进程间通信的具体用法:

1. 创建QLocalServer

在服务端进程中,需要创建一个QLocalServer对象,并监听客户端连接。示例代码如下:

#include <QLocalServer>
#include <QLocalSocket>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

// 创建QLocalServer对象
    QLocalServer server;
    server.listen("myserver");

// 监听客户端连接
    QObject::connect(&server, &QLocalServer::newConnection, [&]() {
        QLocalSocket *socket = server.nextPendingConnection();
        if (socket) {
            qDebug() << "Client connected.";
            socket->write("Hello, world!");
            socket->flush();
            socket->waitForBytesWritten();
            socket->disconnectFromServer();
        }
    });

return a.exec();
}

在上面的代码中,我们创建了一个名为"myserver"的QLocalServer对象,并监听客户端连接。当客户端连接时,我们会接收到"newConnection"信号,并在回调函数中处理客户端连接。在处理函数中,我们发送了一个"Hello, world!"的字符串给客户端,并关闭连接。

2. 连接QLocalServer

在客户端进程中,需要连接服务端的QLocalServer对象,并发送请求。示例代码如下:

#include <QLocalSocket>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

// 连接QLocalServer对象
    QLocalSocket socket;
    socket.connectToServer("myserver");

if (socket.waitForConnected()) {
        qDebug() << "Connected to server.";
        socket.waitForReadyRead();
        QString response = QString::fromUtf8(socket.readAll());
        qDebug() << "Response: " << response;
    } else {
        qDebug() << "Failed to connect to server.";
    }

return a.exec();
}

在上面的代码中,我们连接了名为"myserver"的QLocalServer对象,并等待服务端发来的数据。当服务端发送数据时,我们会接收到"readyRead"信号,并在回调函数中处理服务端响应。在处理函数中,我们输出了服务端发送的字符串。

需要注意的是,QLocalSocket/QLocalServer只能在同一台机器上使用,无法跨机器通信。如果需要跨机器通信,可以考虑使用QDBus等其他方案。

C++ QT QLocalSocket/QLocalServer基操相关推荐

  1. C++ Qt Animation Framework基操

    Qt Animation Framework ,该框架提供了一些预定义的动画效果,如淡入淡出.旋转.缩放等,并且可以自定义动画效果. 以下是一个简单的演示如何使用 Qt Animation Frame ...

  2. ThinkPHP6项目基操(15.实战部分 阿里云短信redis)

    阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...

  3. 面试基操:MQ怎么保障消息可靠性?

    面试官:在MQ的整个消息生产消费过程中,如何保障消息100%被消费? 候选人:MQ有个ACK机制,确保消息100%被消费. 面试官:好吧,可以回去等通知了-- 这道面试题在考察MQ组件时算是老生常谈了 ...

  4. itextpdf添加表格元素_基操勿6第四期:PPT表格美化

    大家好,这里是"基操勿6"的第四期内容,我是阿远. 原本按我的计划是要先把PPT里面一些大家可能不太清楚,但是却很好用的操作先给大家做一遍分享.希望大家用到的时候,可以在同事震惊的 ...

  5. ThinkPHP6项目基操目录

    前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...

  6. Linux基操 笔记

    Linux基操 常用命令 vim命令 进入目录 查看目录文件 查找文件 移动文件 复制文件 删除文件 解压文件到指定目录 压缩文件 linux安装jdk1.8 1.官网下载 2.root用户下 3.配 ...

  7. 2021-09-03 Elasticsearch基操

    Elasticsearch 基操 一.Elasticsearch介绍 二.curl 基本操作 三.es 可视化工具 一.Elasticsearch介绍 二.curl 基本操作 参考:使用curl操作 ...

  8. 【数据结构】线性表之单向链表的八大基操

    线性表可以采用顺序存储结构(依赖于数组)和链式存储结构(依赖于指针) 下面是单向链表有着八大基本操作(简称八大基操) SLinkNode.cpp: #include <stdlib.h> ...

  9. C++ 对文件的最常用基操之对 ASCII 文件(文本文件、字符文件)的操作

    C++ 对文件的最常用操作 ☆ 基本概念 根据文件中数据的组织方式,可以将文件分为 ASCII 文件 和 二进制文件. 前者又称为文本文件或字符文件,后者又称为内部格式文件或字节文件. 本文讲解针对 ...

最新文章

  1. MYsql 查询 查询当前月份的数据
  2. [usb]usb otg和host
  3. 以太坊DAPP[2]-×××-react框架与web3实例
  4. Mysql sequence使用_MySQL 序列使用_mysql sequence_mysql auto increment
  5. 面试:你说你精通Java并发,给我讲讲Java并发之J.U.C
  6. SpringBoot 自动配置实现流程
  7. 3-25Pytorch与张量填充3-26Pytorch与傅里叶变化
  8. 12306再曝漏洞,一张身份证可买两张相同火车票
  9. HP Networking/Comware NETCONF interface quick tutorial (using python’s ncclient and pyhpecw7)
  10. VIM Is More Than Enough For Programer
  11. 学习统计学之非参数检验
  12. crypto-js使用
  13. TeamView 商用检测破解
  14. 学习记录 重叠网络权威知识——多尺度复杂网络社区发现的链接
  15. 被人误解的设计思路1
  16. 启动错误:Could not resolve placeholder 'spring.datasource.url' in value ${spring.datasource.url}
  17. 算法训练 笨笨的机器人(20分)c++实现
  18. struts2漏洞监测_struts2 漏洞 测试方案 与 解决方案
  19. MyBatis-- 分页插件
  20. mysql 判断一年有多少个星期一

热门文章

  1. 在centos7上配置caffe所遇到的一些问题
  2. 【轻松一刻】艾薇儿《I Fell In Love With The Devil》MV
  3. 微信小程序 各类效果(视频)
  4. linux系统gettime获取的时间,clock_gettime获取系统时间
  5. 华工计算机再取硕士有双证吗,华南理工大学首招“周末硕士生”毕业可获双证...
  6. 外贸进销存的数字化管理丨汇信
  7. HTML中如何调整标签在页面中显示的位置
  8. CKEditor上传图片
  9. 极品英文翻唱歌曲--《谢谢你的爱》歌词俸上
  10. DarkNet安装配置