我把QT4.5 demo里面的broadcastsender和broadcastreceiver做了修改。但是出来的结果不对
其中sender中改成
void Sender::broadcastDatagram()
{
#pragma pack(1)
statusLabel->setText(tr("Now broadcasting datagram %1").arg(messageNo));
//! [1]
//QByteArray datagram = "Broadcast message " + QByteArray::number(messageNo);
//udpSocket->writeDatagram(datagram.data(), datagram.size(),
// QHostAddress::Broadcast, 45454);
QPoint tempPoint(messageNo, messageNo);
udpSocket->writeDatagram((char*)(&tempPoint), sizeof(tempPoint), QHostAddress::Broadcast, 45454);
//! [1]
++messageNo;
}
receiver中
void Receiver::processPendingDatagrams()
{
#pragma pack(1)
//! [2]
while (udpSocket->hasPendingDatagrams()) {
QByteArray datagram;
datagram.resize(udpSocket->pendingDatagramSize());
udpSocket->readDatagram(datagram.data(), datagram.size());
QPoint* tempPoint = (QPoint*)&datagram;
//statusLabel->setText(tr("Received datagram: \"%1\"")
// .arg(*temp));
statusLabel->setText(tr("Received datagram: \"%1\"")
.arg(tempPoint->x()));
}
//! [2]
}