当前位置: 代码迷 >> QT开发 >> QT中udp多线程怎么办
  详细解决方案

QT中udp多线程怎么办

热度:15   发布时间:2016-04-25 03:32:49.0
QT中udp多线程怎么处理?
QT中udp客户端,服务器在广域网通信已实现,但现在连接多个客户端的话,只有最后一个客户端可以收到信息,之前的客户端就收不到,现在想的是采用服务器多线程,可是不知道怎么处理,求帮助~

------解决方案--------------------
用一个线程专门用来接收来自客户端的数据,保存到一个队列里面
struct ClientRequest{
    QByteArray datagram;
    QHostAddress sender;
    quint16 senderPort;
};
ClientRequest cq;
cq.datagram.resize(udpSocket->pendingDatagramSize());
udpSocket->readDatagram(cq.datagram.data(), cq.datagram.size(),
         &cq.sender, &cq.senderPort);

创建几个工作线程来处理队列中的ClientRequest, 并且把结果发送回去。
  相关解决方案