在计算机A上写的Qtudp通信(Udp通信放在一个线程内),放到计算机B上收不到数据,求大侠指教:
//控制UDP通信
m_udpSender=newQUdpSocket(this);
m_udpGestureReceiver=newQUdpSocket(this);
connect(m_udpGestureReceiver,SIGNAL(readyRead()),
this,SLOT(UdpReceiveShipInfo()));
m_udpGestureReceiver->bind(R_HOST_PORT_CTRL);
connect(m_udpGestureReceiver,SIGNAL(disconnected()),this,SLOT(UdpCtrlBind()));
voidRadarThread::UdpReceiveShipInfo()
{
if(m_online)
{
emitShipInfoRec();
while(m_udpGestureReceiver->hasPendingDatagrams())//拥有等待的数据报
{
QByteArraydatagram;
datagram.resize(m_udpGestureReceiver->pendingDatagramSize());
m_udpGestureReceiver->readDatagram(datagram.data(),datagram.size());
if(datagram.at(0)=='@'&&datagram.at(1)=='V')
{
datagram.remove(0,2);
sscanf(datagram,"%lf%lf%lf%lf%lf%lf",&(m_shipInfo->Pos_X),&(m_shipInfo->Pos_Y),
&(m_shipInfo->vel),&(m_shipInfo->horitical),&(m_shipInfo->vertical),
&(m_shipInfo->Direction));
m_shipInfo->Direction=m_shipInfo->Direction*PI/180;
}
}
}
}
其中计算机B为双网卡
分 -->
|