Qt TCP Socket 连接服务器示例 - 代码解析
#ifndef MAINWINDOW_H #define MAINWINDOW_H
#include
QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE
class MainWindow : public QMainWindow { Q_OBJECT
public: MainWindow(QWidget *parent = nullptr); ~MainWindow();
private slots: void on_pushButton_clicked(); void connected(); void disconnected(); void readyRead();
private: Ui::MainWindow *ui; QTcpSocket *socket; };
#endif // MAINWINDOW_H
.cpp文件:mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); socket = new QTcpSocket(this);
connect(socket, &QTcpSocket::connected, this, &MainWindow::connected);
connect(socket, &QTcpSocket::disconnected, this, &MainWindow::disconnected);
connect(socket, &QTcpSocket::readyRead, this, &MainWindow::readyRead);
}
MainWindow::~MainWindow() { delete ui; }
void MainWindow::on_pushButton_clicked() { ui->textEdit->clear(); ui->textEdit->append('正在连接中...');
socket->connectToHost('服务器IP地址', 1234); // 替换为实际的服务器IP地址和端口号
}
void MainWindow::connected() { ui->textEdit->append('连接成功!');
// 向服务器发送userid
QString userid = '123'; // 替换为实际的userid
socket->write(userid.toUtf8());
}
void MainWindow::disconnected() { ui->textEdit->append('连接失败!'); }
void MainWindow::readyRead() { QString suggestion = QString(socket->readAll()); ui->textEdit->append(suggestion); }
原文地址: http://www.cveoy.top/t/topic/fCag 著作权归作者所有。请勿转载和采集!