C++ Qt 服务器通信客户端代码示例

本文提供了一个使用 C++ Qt 开发的服务器通信客户端代码示例,以及使用 Telnet 工具连接 Linux 服务器的步骤。代码示例展示了如何使用 Qt 的网络库发送 JSON 数据并接收服务器响应。

客户端代码

#ifndef PROCESSION_H
#define PROCESSION_H

#include <QWidget>
#include <QNetworkAccessManager>
#include <QNetworkReply>

namespace Ui {
class Procession;
}

class Procession : public QWidget
{
    Q_OBJECT

public:
    explicit Procession(int userid,QWidget *parent = nullptr);
    ~Procession();
    void processionWidget();

private slots:
    void connectToServer();//和服务器通信
    void handleServerResponse(QNetworkReply *reply);//和服务器连接回应

private:
    Ui::Procession *ui;
    int userid;
    QNetworkAccessManager *networkManager;
};

#endif // PROCESSION_H


#include "procession.h"
#include "ui_procession.h"
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>

//通过发送POST请求将用户ID发送到指定的服务器,并将服务器的响应显示在界面上。

Procession::Procession(int userid,QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Procession),
    userid(userid)
{
    ui->setupUi(this);
    processionWidget();
    networkManager = new QNetworkAccessManager(this); // 初始化 networkManager 对象
    connect(ui->connectServerBtn,&QPushButton::clicked,this,[=](){
        ui->message->setText('正在连接中……');
        this->connectToServer();
    });
    connect(networkManager, &QNetworkAccessManager::finished, this, &Procession::handleServerResponse);


}

Procession::~Procession()
{
    delete ui;
}

void Procession::processionWidget()
{
    setWindowTitle('服务器通信');
    setAutoFillBackground(true);
    QPalette palette=this->palette();
    QPixmap pixmap(':/user/image/image/net.jpg');
    palette.setBrush(QPalette::Window, QBrush(pixmap));
    setPalette(palette);
    setFixedSize(600,400);
}
void Procession::connectToServer()
{
    QJsonObject json;
    json['userid'] = this->userid;

    QJsonDocument doc(json);
    QByteArray postData = doc.toJson();

    QNetworkRequest request(QUrl(ui->serverIP->text()));
    request.setHeader(QNetworkRequest::ContentTypeHeader, 'application/json');

    networkManager->post(request, postData);
}

void Procession::handleServerResponse(QNetworkReply *reply)
{
    if (reply->error() == QNetworkReply::NoError) {
            QByteArray response = reply->readAll();
            ui->message->append(response);
        } else {
            ui->message->append('连接失败!');
        }

        reply->deleteLater();
}


使用 Telnet 连接服务器

在 Windows 下与 Linux 服务器进行通信,可以使用 Telnet 或 PuTTY 等工具进行连接和通信。以下是使用 Telnet 进行连接的步骤:

  1. 打开命令提示符(CMD)或 PowerShell。
  2. 输入 telnet <服务器IP地址> <服务器端口号>,例如:telnet 192.168.0.1 8080
  3. 如果连接成功,您将看到服务器的欢迎消息。
  4. 按照客户端程序的要求,输入相应的命令或数据进行通信。
  5. 当通信完成后,输入 exit 或按 Ctrl + ],然后输入 quit,以关闭 Telnet 连接。

请注意,Telnet 是一种不加密的通信协议,可能存在安全风险。如果需要更安全的通信方式,可以考虑使用 SSH 等加密协议进行连接和通信。

总结

本文提供了一个使用 C++ Qt 开发的服务器通信客户端代码示例,以及使用 Telnet 工具连接 Linux 服务器的步骤。您可以根据实际情况对代码进行修改和扩展。

C++ Qt 服务器通信客户端代码示例:使用 Telnet 连接 Linux 服务器

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

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