#include "serverwidget.h"
#include "ui_serverwidget.h"
#include <QHostAddress>
ServerWidget::ServerWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::ServerWidget)
{
ui->setupUi(this);
tcpserver=NULL;
tcpsocket=NULL;
//监听套接字,指定父对象,让其自动回收空间
tcpserver = new QTcpServer(this);
tcpserver->listen(QHostAddress::Any,8888);
setWindowTitle("服务器: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->textEditRead->setText(temp);
connect(tcpsocket,&QTcpSocket::readyRead,
[=](){
//从通信套接字中取出内容
QByteArray array = tcpsocket->readAll();
//追加到编辑区中
ui->textEditRead->append(array);
});
});
}
ServerWidget::~ServerWidget()
{
delete ui;
}
void ServerWidget::on_send_clicked()
{
if(NULL==tcpsocket){
return;
}
//获取编辑区内容
QString str = ui->textEditWrite->toPlainText();
//给对方发送数据,使用套接字是tcpSocket
//
tcpsocket->write(str.toUtf8().data());
}
void ServerWidget::on_close_clicked()
{
if(NULL==tcpsocket){
return;
}
//主动和客户端断开连接
tcpsocket->disconnectFromHost();
tcpsocket->close();
tcpsocket=NULL;
}
QT之TCP传输客户端和服务器端互发信息的实现
需积分: 40 58 浏览量
2022-04-08
10:28:56
上传
评论 3
收藏 9KB RAR 举报
Aurora(^*_*^)
- 粉丝: 14
- 资源: 1
最新资源
- 基于matlab实现多车辆车辆路径问题,用遗传算法编程,保证可用.rar
- 基于matlab实现多层极限学习机实现手写体识别,准确率超过99%.rar
- 基于matlab实现电力系统最优潮流程序,可以应用于电力市场下的最优潮流计算 适合电力系统专业的同仁使用.rar
- 串行通信的通信协议串口协议串行通信的通信协议串口协议
- Vue构建交互式的单页面应用程序Vue构建交互式的单页面应用程序
- Spring Boot快速搭建和部署应用程序
- Redis开源的高性键值存储系统广泛应用于缓存、实时消息传递
- Qt跨平台的应用程序开发框架Qt跨平台的应用程序开发框架
- 单片机是集成处理器、存储器和输入输出设备
- 深度学习机器习方法模仿人脑神经网络深度学习机器习方法模仿人脑神经网络
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0