QtQTcpSocketwaitForReadyRead()等函数用法——客户端开关读写应用笔记

更新时间:2023-05-23 06:59:32 阅读: 评论:0

QtQTcpSocketwaitForReadyRead()等函数⽤法——客户端开关读写应
⽤笔记
英文字母26个发音及读法当前⼯作是为设备上位机做TCP通信,所以只需要写客户端程序,环境是Qt5.12 MinGW,⽤QTcpSocket类。以下是基本的开关读写遇到的沟沟坎坎。
开关代码:
1 myClass()
2 {
3    QHostAddress ip;
4    quint16 port;
5    ip = QHoAddress("192.168.10.76");              //服务器IP
6    port = 8800;                                    //⽤服务器开放的端⼝号去连接服务器。
7 }
8
健身教练的学习9/***************************开**************************/
10int myClass::Open()
11 {
12    m_tcpClient->connectToHost(ip,port);            //⽤⽬标服务器IP/port执⾏连接动作
13if(m_tcpClient->waitForConnected())              //等待连接返回
14    {
15return0;
16    }
17return -3;
18 }
19
20/***************************关**************************/
21int myClass::Clo()
22 {
独立宣言23    m_tcpClient->disconnectFromHost();
24if(m_tcpClient->state() == QAbstractSocket::UnconnectedState
25        || m_tcpClient->waitForDisconnected())      //多了个条件
26    {
27return0;
frenemies28    }
29return -3;
30 }
读:
1/***************************读**************************/
2//读我⽬前实现两种
3//1、这是我最先实现的定义信号和槽,qiodevice.h中的readyRead()信号触发槽函数进⾏读取数据。
4
first impression
5 myClass()
6 {
7    connect(tcpClient,SIGNAL(readyRead()),this,SLOT(ReadData()));
8//头⽂件要声明SLOT,这⾥不写了
9//出现connect报错:"u of undeclared identifier 'connect'"
10//解决⽅案:增加基类public QObject
11//我的是这样写class tcpComm:public ibacomm,public QObject
ontology
12 }
13
3g考试
14void myClass::ReadData()
15 {
16//当有数据进来,槽函数激活,没有过多测试激活时机等等,这种不是我需要的。
17 }
18
19//2、由上层调⽤我的读写函数,利⽤waitForReadyRead()函数阻塞进程,等待数据,函数默认参数为等待时长=30000ms,超时返回fal 20
21int myClass::read(void * buffer, int len)
22 {
layup23//尝试在waitForReadyRead()函数之前有数据过来,当执⾏wait函数时,会直接返回true。
24//在阻塞期间来数据,会返回true。
25//阻塞默认参数30000ms,超时返回fal。
26if(m__tcpClient->waitForReadyRead())
27    {
28        buffer = (void*)m_bRead.data_ptr();
29return m_bRead.size();
30    }
31 }
32//代码功能不完整,主要是实现读取数据功能。33
34
35/***************************写**************************/ 36int myClass::Write(const void * buffer, int len)
trigger warning意思37 {
38const char * data = (char *)buffer;
知行英语网39    qint64 nRes = m_tcpClient->write(data,len);
40return (int)nRes;
41 }

本文发布于:2023-05-23 06:59:32,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/742050.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   等待   数据   开关   读写
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图