Qt 如果用tcp/ip接收一串16进制的数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 如果用tcp/ip接收一串16进制的数字相关的知识,希望对你有一定的参考价值。
用write方法将值传出去了,当对端发送回来的时候,我用read方法怎么收不到数据啊。。
参考技术A 您能否将问题描述的清楚一点,或者贴一段你写的代码。一般来说,如果你不是阻塞等待的话,那么就要等触发readyRead的时候再去read数据。
QT TCP/IP
QT 网络通信(TCP/IP)
服务端:
一、监听新的客户端接入(QTcpServer)
重写函数 incomingConnection(qintptr socketDescriptor)
二、服务端每个客户的监听(QTcpSocket 完成三件事1、监听是否有数据传来。2、监听连接是否中断。3、写数据)
1、数据传来时有 readyRead() 信号。将 都数据函数和 此信号关联。
2、连接中断时有 disconnected() 信号。将 中断时处理的事件函数与此信号关联。
3、write(msg.toLatinl(),length) 函数实现。
客户端:
一、客户端完成5件事(QTcpSocket 1、连接服务器。2、监听连接服务器是否成功。3、监听是否有数据传来。4、监听连接是否中断。5、写数据)
1、connectToHost(ip,port); 此函数完成连接服务器。
2、connected() 连接服务器成功时此信号发出。
3、readyRead() 有数据传来时此信号发出。
4、disconnected() 连接中断时此信号发出。
5、write(msg.toLatinl(),length) 函数实现。
附:读数据的函数
void TcpClient::dataReceived() { while(tcpSocket->bytesAvailable()>0) { QByteArray datagram; datagram.resize(tcpSocket->bytesAvailable()); tcpSocket->read(datagram.data(),datagram.size()); QString msg=datagram.data(); //contentListWidget->addItem(msg.left(datagram.size())); } }
以上是关于Qt 如果用tcp/ip接收一串16进制的数字的主要内容,如果未能解决你的问题,请参考以下文章
如何将labview tcp/ip接收到的平化字符串数据还原
Qt如何将串口接收到十六进制转换为十进制,用这个函数不行int hex = str.toInt(&ok, 16);