.h 代码:
#pragma once
#include <QWidget>
#include "ui_QtClientWidget.h"
#include <QTcpSocket>
class QtClientWidget : public QWidget
{
Q_OBJECT
public:
QtClientWidget(QWidget *parent = Q_NULLPTR);
~QtClientWidget();
private slots:
void slotConnect();
void slotSend();
void slotClose();
private:
Ui::QtClientWidget ui;
QTcpSocket *tcpSocket;
};
cpp 代码:
#include "QtClientWidget.h"
QtClientWidget::QtClientWidget(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
tcpSocket = nullptr;
tcpSocket = new QTcpSocket(this);
setWindowTitle(QString::fromLocal8Bit("客户端"));
connect(ui.pushButton_Send, &QPushButton::clicked, this, &QtClientWidget::slotSend);
connect(ui.pushButton_Close, &QPushButton::clicked, this, &QtClientWidget::slotClose);
connect(ui.pushButton_Connect, &QPushButton::clicked, this, &QtClientWidget::slotConnect);
connect(tcpSocket, &QTcpSocket::connected, [=]() {
ui.textEdit_Read->setText(QString::fromLocal8Bit("成功和服务器建立连接"));
});
connect(tcpSocket, &QTcpSocket::readyRead, [=]() {
QByteArray array = tcpSocket->readAll();
ui.textEdit_Read->append(array);
});
}
QtClientWidget::~QtClientWidget()
{
}
void QtClientWidget::slotConnect()
{
QString IP = ui.lineEdit_IP->text();
qint16 port = ui.lineEdit_Port->text().toInt();
tcpSocket->connectToHost(IP, port);
}
void QtClientWidget::slotSend()
{
QString str = ui.textEdit_Write->toPlainText();
tcpSocket->write(str.toUtf8().data());
ui.textEdit_Write->clear();
}
void QtClientWidget::slotClose()
{
tcpSocket->disconnectFromHost();
tcpSocket->close();
}