BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #30754同步于 2009/11/2
CPP机器人发帖

求助:qt中怎样另起一个线程用于接收udp包

jasonjoy
2009/11/2镜像同步0 回复
我的程序如下,但是老是有socket notifier cannot be enabled from another thread,挺迷茫的现在,希望大家感兴趣的帮忙看看 void ConnectSocketThread::run(){ udpConnectSocket=new QUdpSocket(); udpConnectSocket->bind(QHostAddress::LocalHost,10000); connect(udpConnectSocket,SIGNAL(readyRead()),this,SLOT(setMessageState())); exec(); } void ConnectSocketThread::setMessageState() { QHostAddress senderAddress; quint16 port; while(udpConnectSocket->hasPendingDatagrams()) { QByteArray datagram; datagram.resize(udpConnectSocket->pendingDatagramSize()); udpConnectSocket->readDatagram(datagram.data(),datagram.size(), &senderAddress,&port);//×注意:这里的senderAddress、port不能用指针 fromUeMessage=(struct message*)(datagram.data()); } emit startReceive(senderAddress,port,fromUeMessage->ueState); delete fromUeMessage; }
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。