QTcpSocket 读取内容

方法一、在这里最好用bytesAvailable,因为在用canReadLine()的时候,有时会出现还有内容可读,却返回false的情况
           while (socket .bytesAvailable ())
{ tmp =socket .readLine (); response <<tmp ; }
方法二、这种方法不错,一次可以读取很多内容,但是要注意的是可能QString放不下而导致内容不全,不是没有读完的问题 QByteArray datagram; datagram .resize (socket .bytesAvailable ()); socket .read (datagram .data (),datagram .size ()); tmp =datagram .data (); response +=tmp ;
方法三、这里的read方法也是可行的,但相对上面的方法而言,复杂且麻烦。。。 char buff[1512+1]; qint64 tmp ; do { tmp =t ->read ( 1 ); response +=tmp ; } while (tmp != QString ::null );   转自: http://xwz89314.blog.163.com/blog/static/4051000420108864639471/
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QTcpSocketQT中用于网络通信的类,可以通过它实现网络数据的读取和写入。下面是使用QTcpSocket 读取数据的一般步骤: 1. 创建一个QTcpSocket对象 首先需要在QT代码中创建一个QTcpSocket对象,可以通过new操作符创建一个对象。 2. 连接服务器 使用QTcpSocket的connectToHost函数连接到目标服务器。可以指定服务器的IP地址和端口号。 3. 等待连接建立 使用waitForConnected函数等待与服务器的连接被建立。这一步骤是阻塞的,直到与服务器成功建立连接或者超时。 4. 读取数据 连接成功之后,可以使用QTcpSocket的read函数读取服务器发送过来的数据。可以指定读取的数据长度,也可以一直等待读取数据直到有数据可读。 5. 关闭连接 在数据读取完成后,可以使用QTcpSocket的disconnectFromHost函数关闭与服务器的连接。 整体的流程如下: ``` QTcpSocket *socket = new QTcpSocket(this); // 创建QTcpSocket对象 socket->connectToHost("192.168.1.1", 1234); // 连接服务器 if(socket->waitForConnected()) { // 等待连接建立成功 QByteArray data = socket->read(1024); // 读取服务器数据 // 对读取的数据进行处理 socket->disconnectFromHost(); // 关闭连接 } else { // 连接失败处理 } ``` 需要注意的是,QTcpSocket提供了很多其他的函数也可以用于读取数据,如readAll函数读取所有可用数据,readyRead信号在有数据可读时触发等。具体根据实际需要来选择适合的函数使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值