Tuesday, 15 March 2011

c++ - Broadcast large data with Qt sockets -



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