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应用程序之间进行域套接字通信。在实际应用中,您可能需要更复杂的逻辑来处理连接、数据传输和错误处理

相关推荐

  1. Qt实现Unix通信

    2024-04-04 19:30:03       20 阅读
  2. C语言UNIXCS模型

    2024-04-04 19:30:03       18 阅读
  3. 嵌入式学习——3——UNIX

    2024-04-04 19:30:03       8 阅读
  4. 通信类的封装

    2024-04-04 19:30:03       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-04 19:30:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-04 19:30:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-04 19:30:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-04 19:30:03       18 阅读

热门阅读

  1. LeetCode-热题100:121. 买卖股票的最佳时机

    2024-04-04 19:30:03       16 阅读
  2. 2024年最新github之PHP语言开源项目top50排行榜

    2024-04-04 19:30:03       19 阅读
  3. 久菜盒子|留学|推荐信|international trade(国际贸易)

    2024-04-04 19:30:03       16 阅读
  4. 穿透 雪崩 击穿

    2024-04-04 19:30:03       20 阅读
  5. FastGpt流程

    2024-04-04 19:30:03       16 阅读