我正試圖編寫一個程序,讀取在linux中廣播的UDP數據報。我是套接字編程的初學者。
我的代碼是:如何使用QT編寫基於UDP的C++套接字編程?
#include <QUdpSocket>
#include <iostream>
int main()
{
QUdpSocket *udpSocket ;
udpSocket= new QUdpSocket(0);
udpSocket->bind(QHostAddress::LocalHost, 3838);
udpSocket->connect(udpSocket, SIGNAL(readyRead()),
this, SLOT(readPendingDatagrams()));
while (1)
{
if (udpSocket->hasPendingDatagrams())
{
QByteArray datagram;
datagram.resize(udpSocket->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;
udpSocket->readDatagram(datagram.data(), datagram.size(),
&sender, &senderPort);
}
}
}
但在this
返回錯誤。
main.cpp:13:18: error: invalid use of ‘this’ in non-member function
我該怎麼辦?
沒有'connect'就無法工作。它爲你工作? – hamed 2012-03-29 13:33:23
@hamed:是的,它爲我工作。我測試了Linux上的代碼(以netcat作爲發件人)。 – alexisdm 2012-03-29 14:01:55
但是既然你在你的問題中加了「廣播」,我就相應地編輯了我的答案。 – alexisdm 2012-03-29 14:09:41