24,854
社区成员
发帖
与我相关
我的任务
分享
#include "severwidget.h"
#include "ui_severwidget.h"
SeverWidget::SeverWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::SeverWidget)
{
ui->setupUi(this);
tcpserver = NULL;
tcpsocket = NULL;
setWindowTitle("服务器:8888");
tcpserver = new QTcpServer(this);
tcpserver->listen(QHostAddress("/*192.168.7.179*/127.0.0.1"),8888);
connect(tcpserver,&QTcpServer::newConnection,
[=]()
{
tcpsocket = tcpserver->nextPendingConnection();
//获取IP
QString ip = tcpsocket->peerAddress().toString();
//获取端口号
qint16 port = tcpsocket->peerPort();
QString temp = QString("[%1:%2]:成功连接").arg(ip).arg(port);
ui->textRead->setText(temp);
connect(tcpsocket,&QTcpSocket::readyRead,
[=]()
{
QString temp = QString("[%1:%2]:").arg(ip).arg(port);
ui->textRead->setText(temp);
QByteArray array = tcpsocket->readAll();
ui->textRead->append(array);
}
);
}
);
}
SeverWidget::~SeverWidget()
{
delete ui;
}
void SeverWidget::on_ButtonSend_clicked()
{
if(tcpsocket == NULL)
{
return;
}
//获取编辑区内容 toPlainText()获取多行简单文本
QString str = ui->textWrite->toPlainText();//获取窗口信息
//发送信息 使用tcpsocket套接字
tcpsocket->write(str.toUtf8().data());
ui->textRead->setText("服务端:");
ui->textRead->append(str);
}
void SeverWidget::on_ButtonClose_clicked()
{
if(tcpsocket == NULL)
{
return;
}
tcpsocket->disconnectFromHost();
tcpsocket->close();
tcpsocket = NULL;
}
#include "clientwidget.h"
#include "ui_clientwidget.h"
#include <QHostAddress>
ClientWidget::ClientWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::ClientWidget)
{
ui->setupUi(this);
setWindowTitle("客户端");
tcpsocket = NULL;
tcpsocket = new QTcpSocket(this);
connect(tcpsocket,&QTcpSocket::connected,
[=]()
{
ui->textRead->setText("成功建立连接!");
}
);
connect(tcpsocket,&QTcpSocket::readyRead,
[=]()
{
QByteArray array = tcpsocket->readAll();
ui->textRead->append(array);
}
);
connect(tcpsocket,&QTcpSocket::disconnected,
[=]()
{
ui->textRead->setText("连接中断!");
}
);
}
ClientWidget::~ClientWidget()
{
delete ui;
}
void ClientWidget::on_ButtonConnect_clicked()
{
QString ip = ui->lineEditIP->text();
qint16 port = ui->lineEditPort->text().toInt();
tcpsocket->connectToHost(QHostAddress(ip),port);
}
void ClientWidget::on_ButtonSend_clicked()
{
QString str = ui->textWrite->toPlainText();
tcpsocket->write(str.toUtf8().data());
ui->textRead->setText("客户端:");
ui->textRead->append(str);
}
void ClientWidget::on_ButtonClose_clicked()
{
tcpsocket->disconnectFromHost();
tcpsocket->close();
}