#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);server = new QTcpServer();server->listen(QHostAddress::AnyIPv4, SERVER_PORT);connect(server, &QTcpServer::newConnection, this, &Widget::newClientHandler);}Widget::~Widget()
{delete ui;
}void Widget::newClientHandler()
{socket = server->nextPendingConnection();ui->hostLineEdit->setText(socket->peerAddress().toString());ui->portLineEdit->setText(QString::number(socket->peerPort()));connect(socket, &QTcpSocket::readyRead, this, &Widget::clientInfoSlot);
}void Widget::clientInfoSlot()
{ui->chatLineEdit->setText(QString(socket->readAll()));
}void Widget::on_closeButton_clicked()
{socket->close();
}
#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);socket = new QTcpSocket;
}Widget::~Widget()
{delete ui;
}void Widget::on_connectButton_clicked()
{socket->connectToHost(ui->hostLineEdit->text(), ui->portLineEdit->text().toInt());connect(socket, &QTcpSocket::connected, [this](){this->hide();Chat *ct = new Chat(socket);ct->show();});
}
#include "chat.h"
#include "ui_chat.h"
#
Chat::Chat(QTcpSocket *socket, QWidget *parent) :QWidget(parent),ui(new Ui::Chat)
{ui->setupUi(this);this->socket = socket;
}Chat::~Chat()
{delete ui;
}void Chat::on_sendButton_clicked()
{QByteArray ba;ba.append(ui->chatLineEdit->text());socket->write(ba);
}