是可以的,可以使用 Socket 编程来实现 QT C++ 与 Linux C 服务器之间的通信。

首先,你需要在 Linux C 服务器上创建一个监听 Socket,代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>

#define PORT 8888

int main() {
    int server_fd, new_socket;
    struct sockaddr_in address;
    int addrlen = sizeof(address);
    char buffer[1024] = {0};
    char *hello = 'Hello from server';

    // 创建 Socket
    if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
        perror('socket failed');
        exit(EXIT_FAILURE);
    }

    address.sin_family = AF_INET;
    address.sin_addr.s_addr = INADDR_ANY;
    address.sin_port = htons(PORT);

    // 绑定 Socket
    if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) {
        perror('bind failed');
        exit(EXIT_FAILURE);
    }

    // 监听 Socket
    if (listen(server_fd, 3) < 0) {
        perror('listen failed');
        exit(EXIT_FAILURE);
    }

    // 接受客户端连接
    if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t *)&addrlen)) < 0) {
        perror('accept failed');
        exit(EXIT_FAILURE);
    }

    // 读取客户端发送的数据
    read(new_socket, buffer, 1024);
    printf('Client: %s
', buffer);

    // 向客户端发送数据
    send(new_socket, hello, strlen(hello), 0);
    printf('Hello message sent
');

    return 0;
}

然后,在 QT C++ 中,你可以使用 QT 的 QTcpSocket 类来实现与服务器的通信,代码如下:

#include <QCoreApplication>
#include <QTcpSocket>

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

    QTcpSocket socket;
    socket.connectToHost('192.168.0.100', 8888); // 替换为你的 Linux C 服务器的 IP 地址和端口号

    if (socket.waitForConnected()) {
        qDebug() << 'Connected to server';

        // 向服务器发送数据
        socket.write('Hello from client');
        socket.waitForBytesWritten();

        // 读取服务器发送的数据
        socket.waitForReadyRead();
        QString response = socket.readAll();
        qDebug() << 'Server: ' << response;
    } else {
        qDebug() << 'Failed to connect to server';
    }

    socket.close();

    return a.exec();
}

需要注意的是,你需要将 Linux C 服务器的 IP 地址和端口号替换为你的实际情况。另外,在 QT 项目中,你需要在 .pro 文件中添加以下内容来链接 QTcpSocket 类:

QT += network

以上代码只是一个简单的示例,你可以根据实际需求进行修改和扩展。

QT C++ 与 Linux C 服务器通信:实现跨平台 Socket 连接

原文地址: https://www.cveoy.top/t/topic/qh3s 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录