コード例 #1
0
void NetworkHandler::readPendingDatagrams()
{
    while(udpSocket_->hasPendingDatagrams()) {
        QByteArray datagram;
        datagram.resize(udpSocket_->pendingDatagramSize());
        udpSocket_->readDatagram(datagram.data(), datagram.size(), &receiver_, &udpPort_);
        processTheDatagram(datagram);
    }
}
コード例 #2
0
void LatencyMon::rvMsg()
{
     while (rvMsgSock->hasPendingDatagrams()) {
        QByteArray datagram;
        datagram.resize(rvMsgSock->pendingDatagramSize());
        QHostAddress sender;
        quint16 senderPort;

        rvMsgSock->readDatagram(datagram.data(), datagram.size(),
                                &sender, &senderPort);
        processTheDatagram(datagram);
    }
}
コード例 #3
0
void Server::readPendingDatagrams()
{
    while (udpSocket->hasPendingDatagrams()) {
        QByteArray datagram;
        datagram.resize(udpSocket->pendingDatagramSize());
        QHostAddress sender;
        quint16 senderPort;

        udpSocket->readDatagram(datagram.data(), datagram.size(),
                                &sender, &senderPort);

        processTheDatagram(datagram);
    }
}
コード例 #4
0
ファイル: CUdpReceive.cpp プロジェクト: zzzzzsh/201
void        //接受组播数据
CUdpReceive::receiveData()
{
    boost::asio::ip::udp::endpoint senderEndpoint;
    m_cSocket.async_receive_from(
                boost::asio::buffer( m_cDataBuffer , Max_Lenght ) , senderEndpoint ,
                [this](boost::system::error_code ec, std::size_t bytes_recvd ) {
        if (!ec && bytes_recvd > 0){
            processTheDatagram(bytes_recvd);
        }else{
            receiveData();
        }
    });
}
コード例 #5
0
ファイル: osapiudpchannel.cpp プロジェクト: StPessina/OpenGEV
int OSAPIUDPChannel::receive()
{
    int numbytes;

    addr_len = sizeof their_addr;
    if ((numbytes = recvfrom(listenerSocket, buf, MAXBUFLEN-1 , 0,
                             (struct sockaddr *)&their_addr, &addr_len)) == -1)
        return -1;

    datagram.resize(numbytes);
    datagram.setRawData(buf, numbytes);

    QHostAddress senderAddress(inet_ntop(their_addr.ss_family,
                                         getInAddr((struct sockaddr *)&their_addr),
                                         s, sizeof s));
    quint16 senderPort = getInPort((struct sockaddr *) &their_addr);

    processTheDatagram(datagram,senderAddress,senderPort);

    return numbytes;
}
コード例 #6
0
ファイル: messenger.cpp プロジェクト: fffaraz/Lan-Messenger
void Messenger::onReadyRead()
{
    while (_udp.hasPendingDatagrams())
    {
        QByteArray datagram;
        datagram.resize(_udp.pendingDatagramSize());
        QHostAddress sender;
        quint16 senderPort;

        _udp.readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);

        bool flag = true;
        for(int i=0; i < _myips.count(); ++i)
            if(sender.toString() == _myips[i].toString())
                flag = false;

        if (flag)
        {
            logReceived(datagram, sender);
            processTheDatagram(datagram, sender);
        }
    }
}