0

セットアップ: 1) ホーム ネットワークのルーターに接続されたラップトップ A。no-ip ドメイン名を持っています。ポート40000をラップトップAに転送するために、ルーターにポート転送があります。ラップトップAは、ポート40000でリッスンする「サーバー」です。

2) ラップトップ B を同じルーターに接続しています。Bで「クライアント」を実行します。独自のポート45000でソケット(Udp)を作成し、サーバー(ドメイン名とポート40000)に接続してメッセージを送信します。ラップトップ A が受信します。すべては順調です。

3) しかし、readmessag(..) でラップトップ B (送信者) のアドレスとポートを取得しようとすると、ルーターの IP アドレス (71.XX.YY.ZZ) と 1024 のポートが表示されます。送信者IPを(192.xyzやポート45000など)として提供します。

A-->B から接続してメッセージを交換するにはどうすればよいですか? (最初のメッセージからクライアントのポートのIPを取得し、返信して双方向通信を確立できることを望んでいました。)切断はどこですか?----- Qt ツールキットを使用しています

//SERVER CODE EXCERPT
udpSocket = new QUdpSocket();

int retbind=udpSocket->bind(QHostAddress::Any,40000);

//SERVER reads message from Client (code for checking pending datagrams not shown)
udpSocket->readDatagram(datagram.data(), datagram.size(),&senderIp, &senderPort);

ありがとう、

4

0 に答える 0