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