0

UDP 経由でクライアント間通信を行おうとしています。私はそれをするために使用QUdpSocketしています。

最初のクライアントの IP は 127.0.0.2 で、2 番目のクライアントの IP は 127.0.0.3 です。

私の最初のクライアントでは、データを送信したいので、これを行っています:

socket = new QUdpSocket(this);
socket->bind(QHostAddress("127.0.0.2"), (quint16)actual_port);

...

Data = QByteArray::fromRawData((const char *)stockR.data, crypt_packet.size_struct); 
socket->writeDatagram(Data, QHostAddress("127.0.0.3"), (quint16)port_other);

私の2番目のクライアントでは、これがあります:

socket = new QUdpSocket(this);
socket->bind(QHostAddress("127.0.0.3"), (quint16)port_second);
     
...

QByteArray buffer;
buffer.resize(socket->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;
socket->readDatagram(buffer.data(), buffer.size(), &sender, &senderPort);

しかし、 からデータを受信できませreadDatagram()ん。理由がわかりません。

私は両側ですべての機能を実行します。つまり、両方のクライアントで読み取りと書き込みを行います (VoIP 通話を行うためです)。

誰かが私の間違いを知っていますか?

4

1 に答える 1