#include "serverwidget.h"
#include "ui_serverwidget.h"
serverWidget::serverWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::serverWidget)
{
ui->setupUi(this);
tcpserver=nullptr;
tcpsocket=nullptr;
//创建监听套接字
tcpserver=new QTcpServer(this);//指定父对象 回收空间
//bind+listen
tcpserver->listen(QHostAddress::Any,8888);//绑定当前网卡所有的ip 绑定端口 也就是设置服务器地址和端口号
//服务器建立连接
connect(tcpserver,&QTcpServer::newConnection,[=](){
//取出连接好的套接字
tcpsocket=tcpserver->nextPendingConnection();
//获得通信套接字的控制信息
QString ip=tcpsocket->peerAddress().toString();//获取连接的 ip地址
quint16 port=tcpsocket->peerPort();//获取连接的 端口号
QString temp=QString("[%1:%2] 客服端连接成功").arg(ip).arg(port);
//显示连接成功
ui->textEditRead->setText(temp);
//接收信息 必须放到连接中的槽函数 不然tcpsocket就是一个野指针
connect(tcpsocket,&QTcpSocket::readyRead,[=](){
//从通信套接字中取出内容
QString str=tcpsocket->readAll();
//在编辑区域显示
ui->textEditRead->append("客户端:"+str);//不用settext 这样会覆盖之前的消息
});
});
}
serverWidget::~serverWidget()
{
delete ui;
}
void serverWidget::on_buttonsend_clicked()
{
if(tcpsocket==nullptr){
return ;
}
//获取编辑区域的内容
QString str=ui->textEditWrite->toPlainText();
//写入通信套接字 协议栈自动发送
tcpsocket->write(str.toUtf8().data());
//在编辑区域显示
ui->textEditRead->append("服务器端:"+str);//不用settext 这样会覆盖之前的消息
}
void serverWidget::on_buttonclose_clicked()
{
//通信套接字主动与服务端断开连接
tcpsocket->disconnectFromHost();//结束聊天
//关闭 通信套接字
tcpsocket->close();
tcpsocket=nullptr;
}
没有合适的资源?快使用搜索试试~ 我知道了~
QT 实现TCP示例程序
共19个文件
cpp:4个
h:3个
user:2个
需积分: 5 0 下载量 155 浏览量
2023-11-10
10:29:24
上传
评论
收藏 59KB RAR 举报
温馨提示
QT 研究TCP传输的示例,server端和client端代码,QT4,QT5都可以使用
资源推荐
资源详情
资源评论
收起资源包目录
Qt_TCP.rar (19个子文件)
Qt_TCP
build-day16TCpserver-Desktop_Qt4_8_6_MinGW_32_bit-Debug
Makefile 6KB
debug
main.o 131KB
release
Makefile.Release 6KB
Makefile.Debug 6KB
ui_serverwidget.h 4KB
day16TCpserver
day16TCpserver.pro 1KB
day16TCpserver.pro.user.9d3f3ea.22 22KB
serverwidget.h 604B
serverwidget.cpp 2KB
main.cpp 187B
day16TCpserver.pro.user 19KB
serverwidget.ui 2KB
day16TCPclient
day16TCPclient.pro.user.9d3f3ea.22 22KB
clientwidget.cpp 2KB
main.cpp 187B
day16TCPclient.pro.user 19KB
day16TCPclient.pro 1KB
clientwidget.ui 3KB
clientwidget.h 587B
共 19 条
- 1
资源评论
wymwu
- 粉丝: 1
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功