C++ Qt 服务器通信客户端代码示例:使用 Telnet 连接 Linux 服务器
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 进行连接的步骤:
- 打开命令提示符(CMD)或 PowerShell。
- 输入
telnet <服务器IP地址> <服务器端口号>,例如:telnet 192.168.0.1 8080。 - 如果连接成功,您将看到服务器的欢迎消息。
- 按照客户端程序的要求,输入相应的命令或数据进行通信。
- 当通信完成后,输入
exit或按 Ctrl + ],然后输入quit,以关闭 Telnet 连接。
请注意,Telnet 是一种不加密的通信协议,可能存在安全风险。如果需要更安全的通信方式,可以考虑使用 SSH 等加密协议进行连接和通信。
总结
本文提供了一个使用 C++ Qt 开发的服务器通信客户端代码示例,以及使用 Telnet 工具连接 Linux 服务器的步骤。您可以根据实际情况对代码进行修改和扩展。
原文地址: https://www.cveoy.top/t/topic/fB47 著作权归作者所有。请勿转载和采集!