首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT中udp多线程怎么办

2013-12-11 
QT中udp多线程怎么处理?QT中udp客户端,服务器在广域网通信已实现,但现在连接多个客户端的话,只有最后一个

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, 并且把结果发送回去。

热点排行