标题:【提问】QSocket在readyRead进行读取时为什么总是崩溃?
作者:ysb
日期:2005-09-01 09:37
内容:
connect(mysocket,SIGNAL(readyRead()),this,SLOT(slotRead()));
void my::slotRead()
{
//就是下面三行中的问题,一执行到这里,kde就会崩溃
QCString s;
s.resize(mysocket->bytesAvailable()+1);
mysocket->readBlock(s.data(),mysocket->bytesAvailable());
}
#1 [XChinux 09-01 10:09]
哇,Qt4 OpenSoure版里面没有QSocket,不知道4.0.1里面有没有。
不能试验了,呵呵
#2 [XChinux 09-01 10:14]
我看了一下Qt4的QTcpSocket的例子,那里面是读取到QDataStream里面的。不知道与这些有关系没有
#3 [ysb 09-01 10:17]
我是在QT3.4里面的!
#4 [tasteprogram 09-22 20:42]
首先要做一下判断,然后在进行读取,你可以看一下QT的例子
void TCPdialog::recvPacket()
{
QCString buff;
while ( socket->canReadLine() ) {
buff.resize( socket->bytesAvailable() + 1 );
socket->readBlock( buff.data(), socket->bytesAvailable() );
emit return_val( buff.data() );
}
}