#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);
}