• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ bytesAvailable函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中bytesAvailable函数的典型用法代码示例。如果您正苦于以下问题:C++ bytesAvailable函数的具体用法?C++ bytesAvailable怎么用?C++ bytesAvailable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了bytesAvailable函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: atEnd

bool SerialDevice::atEnd() const
{
    if(!isOpen())
    {
        return false;
    }

    return !bytesAvailable();
}
开发者ID:omniacreator,项目名称:omniacreator-plugin,代码行数:9,代码来源:serialdevice.cpp


示例2: readyRead

void CG2Node::OnRead()
{
	if( !Network.m_pSection.tryLock(50) )
	{
		emit readyRead(); // it is a queued connection, lets requeue the missed signal
		return;
	}

    //qDebug() << "CG2Node::OnRead";
    if( m_nState == nsHandshaking )
    {
        if( peek(bytesAvailable()).indexOf("\r\n\r\n") != -1 )
        {
            if( m_bInitiated )
            {
                ParseOutgoingHandshake();
            }
            else
            {
                ParseIncomingHandshake();
            }
        }
    }
    else if ( m_nState == nsConnected )
    {

		G2Packet* pPacket = 0;
        try
        {
			while( (pPacket = G2Packet::ReadBuffer(GetInputBuffer())) )
            {
				m_tLastPacketIn = time(0);
				m_nPacketsIn++;

				OnPacket(pPacket);

				pPacket->Release();
            }
        }
		catch(...)
        {
			if( pPacket )
			{
				qDebug() << pPacket->ToHex() << "\n" << pPacket->ToASCII();
				pPacket->Release();
			}

            qDebug() << "Packet error - " << m_oAddress.toString().toAscii();
            m_nState = nsClosing;
            emit NodeStateChanged();
            deleteLater();
        }
    }

	Network.m_pSection.unlock();
}
开发者ID:geekt,项目名称:quazaa,代码行数:56,代码来源:g2node.cpp


示例3: socketIn

void AGChatSocket::readMessage()
{
    QDataStream socketIn(this);
    socketIn.setVersion(QDataStream::Qt_5_0);
    while (1)
    {
        qDebug() <<this->bytesAvailable()<< "Signal2\n";
        quint16 messageLength= 0;
        if (bytesAvailable() < sizeof(quint16)) return;
        socketIn >> messageLength;

        if (bytesAvailable() < messageLength) return;
        QString temp;
        socketIn >> temp;
        qDebug() << id << ": message received: " << temp << endl;
        emit readFinished(id, temp);
    }

}
开发者ID:Hubertzhang,项目名称:AsteriatedGUI,代码行数:19,代码来源:chatserver.cpp


示例4: lock

void QUsbHid::onHidData(void* p, int len)
{
    QMutexLocker lock(mutex);
    {
        // got data
        readBuffer.append((char*)p,len);
        if (bytesAvailable() > 0)
            emit readyRead();
    }
}
开发者ID:motion55,项目名称:etootle-flight,代码行数:10,代码来源:qusbhid_unix.cpp


示例5: dataLengthForCurrentDataType

int Connection::dataLengthForCurrentDataType()
{
    if (bytesAvailable() <= 0 || readDataIntoBuffer() <= 0 || !buffer.endsWith(SeparatorToken))
             return 0;

    buffer.chop(1);
    int number = buffer.toInt();
    buffer.clear();
    return number;
}
开发者ID:newdebug,项目名称:NewDebug,代码行数:10,代码来源:connection.cpp


示例6: ntohl

void eCIClient::dataAvailable()
{
	if (!receivedCmd)
	{
		if ((unsigned int)bytesAvailable() < sizeof(ciplus_header)) return;
		if ((unsigned int)readBlock((char*)&header, sizeof(ciplus_header)) < sizeof(ciplus_header)) return;
		header.magic = ntohl(header.magic);
		header.cmd = ntohl(header.cmd);
		header.size = ntohl(header.size);
		if (header.magic != CIPLUSHELPER_MAGIC)
		{
			if (parent) parent->connectionLost();
			return;
		}
		receivedCmd = header.cmd;
		receivedCmdSize = header.size;
	}
	if (receivedCmdSize)
	{
		if ((unsigned int)bytesAvailable() < receivedCmdSize) return;
		if (receivedCmdSize) delete [] receivedData;
		receivedData = new unsigned char[receivedCmdSize];
		if ((unsigned int)readBlock((char*)receivedData, receivedCmdSize) < receivedCmdSize) return;

		ciplus_message *message = (ciplus_message *)receivedData;
		switch (header.cmd)
		{
		default:
			{
				unsigned char *data = &receivedData[sizeof(ciplus_message)];
				parent->getSlot(ntohl(message->slot))->send(data, ntohl(message->size));
			}
			break;
		case eCIClient::CIPLUSHELPER_STATE_CHANGED:
			{
				eDVBCISession::setAction(ntohl(message->session), receivedData[sizeof(ciplus_message)]);
			}
			break;
		}
		receivedCmdSize = 0;
		receivedCmd = 0;
	}
}
开发者ID:trunca,项目名称:enigma2-openpli-fulan,代码行数:43,代码来源:dvbci.cpp


示例7: bytesAvailable

		qint64 CustomNetworkReply::readData (char *data, qint64 maxSize)
		{
			if (Offset_ >= Content_.size ())
				return -1;

			qint64 number = std::min (maxSize, bytesAvailable ());
			std::memcpy (data, Content_.constData () + Offset_, number);
			Offset_ += number;

			return number;
		}
开发者ID:Kalarel,项目名称:leechcraft,代码行数:11,代码来源:customnetworkreply.cpp


示例8: while

void TcpSocket::dataReceived()
{
    while(this->bytesAvailable() > 0) //检查字节数
    {
        char buf[1024];
        int length = bytesAvailable();
        this->read(buf, length); //读取接收
        QString message = buf;
        emit updateClients(message, length); //发射信号
    }
}
开发者ID:Soler-he,项目名称:QtChatServer,代码行数:11,代码来源:tcpsocket.cpp


示例9: while

void TcpSocket::dataReceived()
{
    while(bytesAvailable()>0)
    {
        QByteArray jsonData=readAll();
        jsonFromClient2Server.setJSONData(jsonData);
        jsonFromClient2Server.converJSON2Data();
       protocolFromClient2Server= jsonFromClient2Server.getProtocolFromClient2Server();
        emit updateClients(protocolFromClient2Server);
    }
}
开发者ID:guyuhu,项目名称:Robot,代码行数:11,代码来源:tcpsocket.cpp


示例10: while

 void TcpClient::onReadyRead()
 {
     auto socket = m_socket;
     if (socket != nullptr)
     {
         while(socket->bytesAvailable() > 0)
         {
             auto const size = socket->read(reinterpret_cast<char*>(m_buffer), RxBufferSize);
             read(m_buffer, m_buffer + size, size);
         }
     }
 }
开发者ID:DouglasHeriot,项目名称:ember-plus,代码行数:12,代码来源:TcpClient.cpp


示例11: socketIn

void AGSocket::readMessage()
{
    QDataStream socketIn(this);
    socketIn.setVersion(QDataStream::Qt_5_0);
    while (1)
    {
        qDebug() <<this->bytesAvailable()<< "Signal1\n";
        int messageLength= 0;
        if (bytesAvailable() < (int)sizeof(int)) return;
        socketIn >> messageLength;
        
        if (bytesAvailable() < (int)sizeof(int)*messageLength) return;
        std::vector<int> temp;
        for (int i = 0; i<messageLength; i++) {
            int tempMessage;
            socketIn >>tempMessage;
            temp.push_back(tempMessage);
        }
        emit readFinished(id, temp);
    }
}
开发者ID:Hubertzhang,项目名称:AsteriatedGUI,代码行数:21,代码来源:agserver.cpp


示例12: QTime

bool DeviceMuxer::waitForReadyRead(channel_t channel, int msecs)
{
    QTime* timer = (msecs < 0) ? 0 : new QTime();
    if (timer)
        timer->start();

    _readyReadEmitted[channel] = false;
    // Wait until we have some more data to read
    while ( !_readyReadEmitted[channel] && bytesAvailable(channel) <= 0 &&
            (!timer || (timer->elapsed() < msecs)) )
    {
        // How much time left?
        int remaining = timer ? msecs - timer->elapsed() : -1;
        if (timer && remaining < 0)
            remaining = 0;
        QCoreApplication::processEvents(QEventLoop::AllEvents, remaining);
        QThread::yieldCurrentThread();
    }

    return _readyReadEmitted[channel] || bytesAvailable(channel) > 0;
}
开发者ID:wxdublin,项目名称:insight-vmi,代码行数:21,代码来源:devicemuxer.cpp


示例13: procFinished

/*!
Do some clean up, and be sure that all output has been read.
*/
void MyProcess::procFinished() {

#if !USE_TEMP_FILE
	if ( bytesAvailable() > 0 ) readStdOut();
#else
	timer.stop();

	if ( temp_file.bytesAvailable() > 0 ) readTmpFile();

	temp_file.close();
#endif
}
开发者ID:jinjianxin,项目名称:qt-opensource,代码行数:15,代码来源:myprocess.cpp


示例14: dataLengthForCurrentDataType

bool Connection::hasEnoughData()
{
    if (numBytesForCurrentDataType <= 0)
        numBytesForCurrentDataType = dataLengthForCurrentDataType();

    if (bytesAvailable() < numBytesForCurrentDataType || numBytesForCurrentDataType <= 0)
    {
        return false;
    }

    return true;
}
开发者ID:newdebug,项目名称:NewDebug,代码行数:12,代码来源:connection.cpp


示例15: while

void TrkDevice::tryTrkRead()
{
#ifdef Q_OS_WIN
    const DWORD BUFFERSIZE = 1024;
    char buffer[BUFFERSIZE];
    DWORD charsRead;
    DWORD totalCharsRead = 0;

    while (TryReadFile(d->hdevice, buffer, BUFFERSIZE, &charsRead, NULL)) {
        totalCharsRead += charsRead;
        d->trkReadBuffer.append(buffer, charsRead);
        if (isValidTrkResult(d->trkReadBuffer, d->serialFrame))
            break;
    }
    if (verbose() && totalCharsRead)
        logMessage("Read" + d->trkReadBuffer.toHex());
    if (!totalCharsRead)
        return;
    const ushort len = trk::isValidTrkResult(d->trkReadBuffer, d->serialFrame);
    if (!len) {
        const QString msg = QString::fromLatin1("Partial message: %1").arg(stringFromArray(d->trkReadBuffer));
        emitError(msg);
        return;
    }
#else
    const int size = bytesAvailable(d->file.handle());
    if (!size)
        return;
    const QByteArray data = d->file.read(size);
    if (verbose())
        logMessage("READ " + data.toHex());
    d->trkReadBuffer.append(data);
    const ushort len = trk::isValidTrkResult(d->trkReadBuffer, d->serialFrame);
    if (!len) {
        if (d->trkReadBuffer.size() > 10) {
            const QString msg = QString::fromLatin1("Unable to extract message from '%1' '%2'").
                             arg(QLatin1String(d->trkReadBuffer.toHex())).arg(QString::fromAscii(d->trkReadBuffer));
            emitError(msg);
        }
        return;
    }
#endif // Q_OS_WIN
    trk::TrkResult r;
    QByteArray rawData;
    while (extractResult(&d->trkReadBuffer, d->serialFrame, &r, &rawData)) {
        if (verbose())
            logMessage("Read TrkResult " + r.data.toHex());
        emit messageReceived(r);
        if (!rawData.isEmpty())
            emit rawDataReceived(rawData);
    }
}
开发者ID:TheProjecter,项目名称:project-qtcreator,代码行数:52,代码来源:trkolddevice.cpp


示例16: abort

void Connection::processReadyRead()
{
    if (state == WaitingForGreeting) {
        if (!readProtocolHeader())
            return;
        if (currentDataType != Greeting) {
            abort();
            return;
        }
        state = ReadingGreeting;
    }

    if (state == ReadingGreeting) {
        if (!hasEnoughData())
            return;

        buffer = read(numBytesForCurrentDataType);
        if (buffer.size() != numBytesForCurrentDataType) {
            abort();
            return;
        }

        username = QString(buffer) + '@' + peerAddress().toString() + ':'
                   + QString::number(peerPort());
        currentDataType = Undefined;
        numBytesForCurrentDataType = 0;
        buffer.clear();

        if (!isValid()) {
            abort();
            return;
        }

        if (!isGreetingMessageSent)
            sendGreetingMessage();

        pingTimer.start();
        pongTime.start();
        state = ReadyForUse;
        emit readyForUse();
    }

    do {
        if (currentDataType == Undefined) {
            if (!readProtocolHeader())
                return;
        }
        if (!hasEnoughData())
            return;
        processData();
    } while (bytesAvailable() > 0);
}
开发者ID:TanyaZavyalova,项目名称:chatCS,代码行数:52,代码来源:connection.cpp


示例17: VLRException

void Socket::clearInputBuffer() {

  if (!connected_) {
    throw VLRException("Not connected.");
  }

  int64_t val = bytesAvailable();
  if (val > 0) {
    uint8_t* buffer = new uint8_t[val];
    ssize_t dummy = read(socket_, buffer, val);
    delete[] buffer;
  }
}
开发者ID:Forrest-Z,项目名称:stanford_self_driving_car_code,代码行数:13,代码来源:vlrSocket.cpp


示例18: writeBlock

long FQTermLocalSocket::writeBlock( const QByteArray &data )
{
  int count = shell_process_->write(data);

  //char c;
//  shell_process_->getChar(&c);
//  shell_process_->ungetChar(c);
  if (bytesAvailable())
  {
    emit readyRead();
  }
  return count;
}
开发者ID:mytbk,项目名称:fqterm,代码行数:13,代码来源:fqterm_local_socket.cpp


示例19: in

void ClientSocket::readMessage()
 {
    QDataStream in(this);
    quint16 nextBlockSize;
    QString message;

        in.setVersion(QDataStream::Qt_4_7);
        while(1)
        {
        if(bytesAvailable() < (int)sizeof(quint16)) return;
        in >> nextBlockSize;

        if(bytesAvailable() < nextBlockSize) return;

        //如果没有得到全部的数据,则返回,继续接收数据

        in >> message;

        emit getMessage(id,message);
        }
        //将接收到的数据存放到变量中
 }
开发者ID:dreamStar,项目名称:Asteriated_Grail,代码行数:22,代码来源:Server.cpp


示例20: Q_D

void QHttpSocketEngine::setReadNotificationEnabled(bool enable)
{
    Q_D(QHttpSocketEngine);
    if (d->readNotificationEnabled == enable)
        return;

    d->readNotificationEnabled = enable;
    if (enable) {
        // Enabling read notification can trigger a notification.
        if (bytesAvailable())
            slotSocketReadNotification();
    }
}
开发者ID:2011fuzhou,项目名称:vlc-2.1.0.subproject-2010,代码行数:13,代码来源:qhttpsocketengine.cpp



注:本文中的bytesAvailable函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ bytesChanged函数代码示例发布时间:2022-05-30
下一篇:
C++ byteout函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap