私は、LinuxでブロードキャストされたUDPデータグラムを読むプログラムを書こうとしています。私はソケットプログラミングの初心者です。QTでC++ソケットプログラミングベースのUDPを書くには?
#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
@hamed:はい、それは私のために働いた。私はLinux上でコードをテストした(netcatを送信者として)。 – alexisdm
しかし、質問に "放送"を追加したので、私はそれに応じて私の答えを編集しました。 – alexisdm