Qt中实现域(Unix)套接字通信

Qt中实现域(Unix)套接字通信可以使用QLocalServer和QLocalSocket类。以下是一个简单的示例,演示了如何在两个Qt应用程序之间使用域套接字进行通信。

一、在服务器端:

cpp

Copy code

#include <QtWidgets>

#include <QLocalServer>

#include <QLocalSocket>

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

QApplication app(argc, argv);

QLocalServer server;

if (!server.listen("myserver")) {

qDebug() << "Error: " << server.errorString();

return 1;

}

qDebug() << "Server listening...";

QObject::connect(&server, &QLocalServer::newConnection, [&](){

QLocalSocket *socket = server.nextPendingConnection();

if (!socket) {

return;

}

QObject::connect(socket, &QLocalSocket::readyRead, [&](){

QByteArray data = socket->readAll();

qDebug() << "Received: " << data;

socket->write("Message received.");

});

});

return app.exec();

}

二、 在客户端:

cpp

Copy code

#include <QtWidgets>

#include <QLocalSocket>

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

QApplication app(argc, argv);

QLocalSocket socket;

socket.connectToServer("myserver");

if (!socket.waitForConnected()) {

qDebug() << "Error: " << socket.errorString();

return 1;

}

qDebug() << "Connected to server.";

socket.write("Hello from client.");

if (!socket.waitForBytesWritten()) {

qDebug() << "Error writing to server: " << socket.errorString();

return 1;

}

if (!socket.waitForReadyRead()) {

qDebug() << "Error reading from server: " << socket.errorString();

return 1;

}

QByteArray response = socket.readAll();

qDebug() << "Server response: " << response;

return app.exec();

}

这是一个简单的示例,说明了如何使用QLocalServer和QLocalSocket在Qt应用程序之间进行域套接字通信。在实际应用中,您可能需要更复杂的逻辑来处理连接、数据传输和错误处理

相关推荐
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于Java的学校住宿管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
rookieﻬ°3 小时前
PHP框架漏洞
开发语言·php
炸膛坦客4 小时前
单片机/C/C++八股:(二十)指针常量和常量指针
c语言·开发语言·c++
兑生4 小时前
【灵神题单·贪心】1481. 不同整数的最少数目 | 频率排序贪心 | Java
java·开发语言
炸膛坦客5 小时前
单片机/C/C++八股:(十九)栈和堆的区别?
c语言·开发语言·c++
零雲5 小时前
java面试:了解抽象类与接口么?讲一讲它们的区别
java·开发语言·面试
Jay_Franklin5 小时前
Quarto与Python集成使用
开发语言·python·markdown
2401_831824966 小时前
代码性能剖析工具
开发语言·c++·算法
是wzoi的一名用户啊~6 小时前
【C++小游戏】2048
开发语言·c++
Sunshine for you7 小时前
C++中的职责链模式实战
开发语言·c++·算法