0

Java サーブレットの一部のデータを更新する必要がある Java クラスがあります。ホームネットワークでIPを使用している場合、またはISPのIPを使用している場合(ルーターからの転送を行った場合)でも正常に動作します。

しかし今、ISP アドレスと実際には同じ動的 DNS でサーブレットを更新したい場合、それは機能しません。

奇妙なことに、ダイナミック DNS を使用してサーブレットからデータを取得できます。

それが私のコードです: (私は IP と DDNS アドレスを見つめただけです) 注: ダイナミック DNS (コード内: http://example.zapto.org ) は、凝視された IP (コード内: http:// xx.xxx.xxx.xxx:8084 )。IP を使用する場合、DDNS は機能しません。

public class SendGsonToServlet {
public static boolean sendGson (String qrCode){

    try {
        String jsonStr = new Gson().toJson(qrCode);

//          URL servletURL = new URL("http://example.zapto.org/Android_Server/data");
            URL servletURL = new URL("http://xx.xxx.xxx.xxx:8084/Android_Server/data");
//          URL servletURL = new URL("http://192.168.1.108:8084/Android_Server/data");

        // assumes protocol is http, could be https
        HttpURLConnection conn = (HttpURLConnection)servletURL.openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");

        PrintWriter out = new PrintWriter(conn.getOutputStream());
        out.println(jsonStr);
//          out.flush();
        out.close();

        System.out.println(conn.getResponseCode());

    }catch (Exception e) {

    }

    return true;
}

}

皆様、ありがとうございました。楽しい休暇をお過ごしください :)

4

1 に答える 1

0

ping で別の IP アドレスが返され、この IP アドレスでテストが失敗した場合は、おそらく次のようになります。

  • または、パブリック IP を使用して LAN 内のサービスに到達できません。
  • または、DDNS が IP 評価に失敗します。
  • または、ISP がパブリック IP を提供せず、プライベート サブネットに NAT を使用します。
于 2012-04-07T01:39:41.143 に答える