C++ QT QLocalSocket/QLocalServer基操
以下是使用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基操相关推荐
- C++ Qt Animation Framework基操
Qt Animation Framework ,该框架提供了一些预定义的动画效果,如淡入淡出.旋转.缩放等,并且可以自定义动画效果. 以下是一个简单的演示如何使用 Qt Animation Frame ...
- ThinkPHP6项目基操(15.实战部分 阿里云短信redis)
阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...
- 面试基操:MQ怎么保障消息可靠性?
面试官:在MQ的整个消息生产消费过程中,如何保障消息100%被消费? 候选人:MQ有个ACK机制,确保消息100%被消费. 面试官:好吧,可以回去等通知了-- 这道面试题在考察MQ组件时算是老生常谈了 ...
- itextpdf添加表格元素_基操勿6第四期:PPT表格美化
大家好,这里是"基操勿6"的第四期内容,我是阿远. 原本按我的计划是要先把PPT里面一些大家可能不太清楚,但是却很好用的操作先给大家做一遍分享.希望大家用到的时候,可以在同事震惊的 ...
- ThinkPHP6项目基操目录
前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...
- Linux基操 笔记
Linux基操 常用命令 vim命令 进入目录 查看目录文件 查找文件 移动文件 复制文件 删除文件 解压文件到指定目录 压缩文件 linux安装jdk1.8 1.官网下载 2.root用户下 3.配 ...
- 2021-09-03 Elasticsearch基操
Elasticsearch 基操 一.Elasticsearch介绍 二.curl 基本操作 三.es 可视化工具 一.Elasticsearch介绍 二.curl 基本操作 参考:使用curl操作 ...
- 【数据结构】线性表之单向链表的八大基操
线性表可以采用顺序存储结构(依赖于数组)和链式存储结构(依赖于指针) 下面是单向链表有着八大基本操作(简称八大基操) SLinkNode.cpp: #include <stdlib.h> ...
- C++ 对文件的最常用基操之对 ASCII 文件(文本文件、字符文件)的操作
C++ 对文件的最常用操作 ☆ 基本概念 根据文件中数据的组织方式,可以将文件分为 ASCII 文件 和 二进制文件. 前者又称为文本文件或字符文件,后者又称为内部格式文件或字节文件. 本文讲解针对 ...
最新文章
- MYsql 查询 查询当前月份的数据
- [usb]usb otg和host
- 以太坊DAPP[2]-×××-react框架与web3实例
- Mysql sequence使用_MySQL 序列使用_mysql sequence_mysql auto increment
- 面试:你说你精通Java并发,给我讲讲Java并发之J.U.C
- SpringBoot 自动配置实现流程
- 3-25Pytorch与张量填充3-26Pytorch与傅里叶变化
- 12306再曝漏洞,一张身份证可买两张相同火车票
- HP Networking/Comware NETCONF interface quick tutorial (using python’s ncclient and pyhpecw7)
- VIM Is More Than Enough For Programer
- 学习统计学之非参数检验
- crypto-js使用
- TeamView 商用检测破解
- 学习记录 重叠网络权威知识——多尺度复杂网络社区发现的链接
- 被人误解的设计思路1
- 启动错误:Could not resolve placeholder 'spring.datasource.url' in value ${spring.datasource.url}
- 算法训练 笨笨的机器人(20分)c++实现
- struts2漏洞监测_struts2 漏洞 测试方案 与 解决方案
- MyBatis-- 分页插件
- mysql 判断一年有多少个星期一
热门文章
- 在centos7上配置caffe所遇到的一些问题
- 【轻松一刻】艾薇儿《I Fell In Love With The Devil》MV
- 微信小程序 各类效果(视频)
- linux系统gettime获取的时间,clock_gettime获取系统时间
- 华工计算机再取硕士有双证吗,华南理工大学首招“周末硕士生”毕业可获双证...
- 外贸进销存的数字化管理丨汇信
- HTML中如何调整标签在页面中显示的位置
- CKEditor上传图片
- 极品英文翻唱歌曲--《谢谢你的爱》歌词俸上
- DarkNet安装配置