c++ - Broadcast large data with Qt sockets -
i'm using qt. need broadcast data, seek utilize qudpsocket. info can big(after writedatagram qudpsocket::error returns datagramtoolargeerror). split info , phone call writedatagram several times parts. received socket receive info once, first packet. receive code is
connect(&m_socketreceiver, &qudpsocket::readyread, this, &localnetsharing::ondataread); void localnetsharing::ondataread() { while (m_socketreceiver.haspendingdatagrams()) { qbytearray datagram; datagram.resize(m_socketreceiver.pendingdatagramsize()); m_socketreceiver.readdatagram(datagram.data(), datagram.size()); //process info } }
from qt documentation qudpsocket class :
note: incoming datagram should read when receive readyread() signal, otherwise signal not emitted next datagram.
so seems not reading entire datagram in each phone call of ondataread.
you don't specify host , port in readdatagram. not sure if reason right form :
while (m_socketreceiver.haspendingdatagrams()) { qbytearray datagram; datagram.resize(m_socketreceiver.pendingdatagramsize()); m_socketreceiver.readdatagram(datagram.data(), datagram.size(), host, &port); //process info } c++ qt sockets udp qudpsocket
No comments:
Post a Comment