方法一、在这里最好用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/
阅读(7618) | 评论(0) | 转发(0) |