我们有一个在本地网络内运行的设备,一个 californium 服务器在网络外的另一台机器上运行。服务器IP是公共IP。要求是当服务器收到来自设备的请求时,服务器应向设备发送 GET 请求。我们这里面临的问题是 - 当设备向服务器发送请求时,服务器看不到设备的内部 IP,服务器只能看到设备的外部 IP(网络的公共 IP)。因此,服务器从请求中捕获 IP 和 PORT 号并创建单独的 get 请求,为其设置 IP 和端口并将请求发送到设备。该请求仅到达网络的公共 IP,无法到达设备。
另一件事是,当服务器向设备发送捎带支持的响应时,响应会到达设备,而不是在设备的公共 IP 处被阻止。我正在使用以下代码向设备发送搭载响应:
handleGET(CoapExchange exchange){
exchange.respond(""); //respnoding with empty payload
}
提前致谢 ...