Qt实现简单的TCP协议(客户端的实现)
2024-10-21 13:23:36
1、QT提供了QTcpSocket类,可以直接实例化一个客户端。需要在pro文件中添加 QT += network
2、连接服务端
connect(connectbutton,SIGNAL(clicked()),this,SLOT(on_connect_cliked()));
void MyDialog::on_connect_cliked(){
if(connectbutton->text()=="连接")
{
m_socket->connectToHost("192.168.0.103",8899,QTcpSocket::ReadWrite);
if(!m_socket->waitForConnected())
{
qDebug()<<"client connect error";
}
else{
qDebug()<<"已连接上";
connectbutton->setText("断开");
}
}
else
{
m_socket->disconnectFromHost();
if(m_socket->state()==QAbstractSocket::UnconnectedState
|| m_socket->waitForDisconnected(1000))
{
qDebug()<<"已断开";
connectbutton->setText("连接");
}
}
}
3、接受服务端发来的数据
QTimer *timer = new QTimer;
connect(timer,SIGNAL(timeout()),this,SLOT(receive_repeat()));
timer->start(1);
void MyDialog::readData(){
QByteArray buffer = m_socket->readAll();
if(!buffer.isEmpty())
{
receivee.append(buffer);
qDebug()<<"添加了数据";
}
}
4、给服务端发送数据
connect(sendbutton,SIGNAL(clicked()),this,SLOT(send_msg()));
void MyDialog::send_msg(){
QString data = sendtext->toPlainText();
if(data != "")
{
// qDebug()<<"mydialog sendtext2"<<data;
m_socket->write(data.toLatin1());
}
}
最新文章
- Go 项目的目录结构 及 安装技巧
- phpcms图片模型调用组图的问题
- XCode升级导致的IAP失败的问题
- LeetCode: 3_Longest Substring Without Repeating Characters | 求没有重复字符的最长子串的长度 | Medium
- V9最新手机门户域名绑定教程。
- iOS控件——UIView与UIImageView播放动画的实现方法
- 修改textField的placeholder的字体颜色、大小
- MySQL内存表的特性与使用介绍 -- 简明现代魔法
- 搭建Ubuntu下c/c++编译环境【转】
- node.js如何制作命令行工具(一)
- wamp的mysql设置用户名和密码
- oo修仙之路
- Step by Step Recipe for Securing Kafka with Kerberos
- 【Webpack 杂谈】帮助文档翻译:Webpack的模块
- zabbix免客户端监控网站URL
- MyBatis-Plus学习笔记
- Robot Framework - 一些练习
- RabbitMQ配置
- react在router中传递数据的2种方法
- SQL Server死锁产生原因及解决办法 .