Java ネットワーク接続例外 (ConnectException) を解決する方法
Java プログラムでは、ネットワーク接続例外 (ConnectException) がよく発生するエラーです。 Java プログラムを使用して別のコンピュータまたはサーバーへのネットワーク接続を確立すると、ConnectException 例外が発生することがあります。この例外は通常、ターゲット ホストに接続できないことが原因で発生します。考えられる理由としては、ターゲット ホストが存在しない、ネットワーク障害、開いていないポートなどが挙げられます。
ConnectException 例外の場合、問題を解決するために一連の方法と措置を講じることができます。一般的に使用されるいくつかのメソッドを、参考用の対応するコード例とともに以下に紹介します。
コード例:
String host = "example.com"; int port = 80; try { InetAddress inetAddress = InetAddress.getByName(host); boolean reachable = inetAddress.isReachable(10000); if (!reachable) { System.out.println(host + " is not reachable."); } else { System.out.println(host + " is reachable."); // 进一步进行连接操作 } } catch (UnknownHostException e) { System.out.println("Unknown host: " + host); } catch (IOException e) { e.printStackTrace(); }
コード例:
String host = "example.com"; int port = 80; try { // 禁用防火墙 Runtime.getRuntime().exec("sudo systemctl stop firewalld"); // 连接操作 Socket socket = new Socket(host, port); // 其他操作 } catch (IOException e) { e.printStackTrace(); } finally { // 恢复防火墙设置 try { Runtime.getRuntime().exec("sudo systemctl start firewalld"); } catch (IOException e) { e.printStackTrace(); } }
setSoTimeout
メソッドを使用して、接続タイムアウトを設定できます。 コード例:
String host = "example.com"; int port = 80; try { Socket socket = new Socket(); socket.connect(new InetSocketAddress(host, port), 10000); // 设置连接超时时间为 10 秒 // 连接成功,执行其他操作 } catch (IOException e) { e.printStackTrace(); }
コード サンプル (Apache HttpClient を使用):
String url = "https://example.com"; HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(10)) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(new URI(url)) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); int statusCode = response.statusCode(); if (statusCode == 200) { // 连接成功,执行其他操作 } else { System.out.println("Failed to connect: " + statusCode); }
上記の方法とサンプル コードを通じて、Java プログラムでのネットワーク接続例外をより適切に解決できます。実際のアプリケーションでは、特定の状況に応じて適切な方法を選択し、例外処理メカニズムと組み合わせて適切な最適化とデバッグを実行して、ネットワーク接続の安定性と信頼性を確保します。
以上がJavaネットワーク接続例外(ConnectException)を解決するメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。