• 9663阅读
  • 4回复

【提问】QSocket在readyRead进行读取时为什么总是崩溃? [复制链接]

上一主题 下一主题
离线ysb
 
只看楼主 倒序阅读 楼主  发表于: 2005-09-01
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
connect(mysocket,SIGNAL(readyRead()),this,SLOT(slotRead()));

void my::slotRead()
{
//就是下面三行中的问题,一执行到这里,kde就会崩溃
    QCString s;
    s.resize(mysocket->bytesAvailable()+1);
    mysocket->readBlock(s.data(),mysocket->bytesAvailable());
}
离线XChinux

只看该作者 1楼 发表于: 2005-09-01
哇,Qt4 OpenSoure版里面没有QSocket,不知道4.0.1里面有没有。
不能试验了,呵呵
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 2楼 发表于: 2005-09-01
我看了一下Qt4的QTcpSocket的例子,那里面是读取到QDataStream里面的。不知道与这些有关系没有
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线ysb
只看该作者 3楼 发表于: 2005-09-01
我是在QT3.4里面的!
离线tasteprogram
只看该作者 4楼 发表于: 2005-09-22
首先要做一下判断,然后在进行读取,你可以看一下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() );
     }
}
快速回复
限100 字节
 
上一个 下一个