ローカル ネットワーク内で実行されているデバイスがあり、californium サーバーがネットワーク外の別のマシンで実行されています。サーバー IP はパブリック IP です。要件は、サーバーがデバイスから要求を受信したときに、サーバーがデバイスに GET 要求で応答する必要があることです。ここで直面している問題は、デバイスがサーバーにリクエストを送信するとき、サーバーはデバイスの内部 IP を認識できず、サーバーはデバイスの外部 IP (ネットワークのパブリック IP) しか認識できないことです。そのため、サーバーはリクエストから IP とポート番号を取得し、別の get リクエストを作成して、IP とポートを設定し、リクエストをデバイスに送信します。要求はネットワークのパブリック IP にのみ到達し、デバイスに到達できませんでした。
もう 1 つのことは、サーバーがピギー バック応答をデバイスに送信している場合、デバイスのパブリック IP でブロックされるのではなく、応答がデバイスに到達することです。次のコードを使用して、ピギーバック応答をデバイスに送信しています。
handleGET(CoapExchange exchange){
exchange.respond(""); //respnoding with empty payload
}
前もって感謝します ...