
~~客户端~~
#include "tcpclientwidget.h"
#include "ui_tcpclientwidget.h"
#include <QDebug>
#include <QHostAddress>
tcpClientWidget::tcpClientWidget(QWidget* parent) : QWidget(parent), ui(new Ui::tcpClientWidget), m_pSocket(nullptr) {
ui->setupUi(this);
this->setWindowTitle("Client");
m_pSocket = new QTcpSocket(this);
if (m_pSocket == nullptr) {
qDebug() << "client init failed !";
return;
}
QObject::connect(m_pSocket, &QTcpSocket::readyRead, [=]() { ui->textEditRead->append(m_pSocket->readAll()); });
QObject::connect(m_pSocket, &QTcpSocket::connected, [=]() { ui->textEditRead->setText("端连接成功!\n"); });
ui->lineEditIp->setText("127.0.0.1");
ui->lineEditPort->setText("8888");
}
tcpClientWidget::~tcpClientWidget() {
delete ui;
}
void tcpClientWidget::on_btnSend_clicked() {
if (m_pSocket == nullptr) return;
m_pSocket->write(ui->textEditWrite->toPlainText().toUtf8().data());
}
void tcpClientWidget::on_btnClose_clicked() {
if (m_pSocket == nullptr) return;
m_pSocket->disconnectFromHost();
m_pSocket->close();
}
void tcpClientWidget::on_btnConnect_clicked() {
QString sIp = ui->lineEditIp->text();
int port = ui->lineEditPort->text().toInt();
m_pSocket->connectToHost(QHostAddress(sIp), port);
}
~~服务端~~
#include "tcpserverwidget.h"
#include "ui_tcpserverwidget.h"
#include <QDebug>
#include <QByteArray>
tcpServerWidget::tcpServerWidget(QWidget* parent) :
QWidget(parent), ui(new Ui::tcpServerWidget), m_pServer(nullptr), m_pSocket(nullptr) {
ui->setupUi(this);
m_pServer = new QTcpServer(this);
if (m_pServer == nullptr) {
qDebug() << " server init fail! ";
return;
}
this->setWindowTitle("Server");
m_pServer->listen(QHostAddress::Any, 8888);
QObject::connect(m_pServer, &QTcpServer::newConnection, [=]() {
m_pSocket = m_pServer->nextPendingConnection();
QString sIp = m_pSocket->localAddress().toString();
quint16 port = m_pSocket->localPort();
QString str{"[client ip:%1-port:%2]客户端连接成功!\n"};
ui->textEditRead->setText(str.arg(sIp).arg(port));
QObject::connect(m_pSocket, &QTcpSocket::readyRead, [=]() {
QByteArray array = m_pSocket->readAll();
ui->textEditRead->append(array);
});
});
}
tcpServerWidget::~tcpServerWidget() {
delete ui;
}
void tcpServerWidget::on_btnSend_clicked() {
if (m_pSocket == nullptr) return;
m_pSocket->write(ui->textEditWrite->toPlainText().toUtf8().data());
}
void tcpServerWidget::on_btnClose_clicked() {
if (m_pSocket == nullptr) return;
m_pSocket->disconnectFromHost();
m_pSocket->close();
}