是可以的,可以使用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\n", buffer);

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

    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++在window下可以Linux C服务器通信吗?如何实现

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

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