QByteArray
QDataStream
QUdpSocket
#include "sender.h"
SenderReceiver::SenderReceiver(QObject *parent) :
QObject(parent)
{
sendUdpSocket = new QUdpSocket(0);
receiveUdpSocket = new QUdpSocket(0);
receiveUdpSocket->bind(45455,QUdpSocket::ShareAddress);
connect(receiveUdpSocket, SIGNAL(readyRead()), this, SLOT(processPendingDatagrams()));
}
//viestien lahetys
void SenderReceiver::broadcastDatagram(QVector<float> v)
{
int error,i;
QByteArray datagram;
qDebug() << v;
QDataStream out (&datagram,QIODevice::WriteOnly);
foreach(float f,v)
//kirjoitetaan udp-viesti, mahdollinen virhe kannattaisi tarkastaa
error=sendUdpSocket->writeDatagram(datagram.data(), datagram.size(), QHostAddress::Broadcast, 45455);
}
//viestien vastaanotto
void SenderReceiver::processPendingDatagrams()
{
float f;
//onko vastaanotettu viesteja
while (receiveUdpSocket->hasPendingDatagrams()) {
QByteArray datagram;
datagram.resize(receiveUdpSocket->pendingDatagramSize());
receiveUdpSocket->readDatagram(datagram.data(), datagram.size());
QDataStream in(datagram);
while (!in.atEnd())
qDebug() << v2;
emit sendReceivedData(v2);
}
}