リモート ホストとの SSL ハンドシェイクを開始しようとする Java プログラムがあります。次のコードは、リモート ホストのリストで正常に使用されます。しかし、プログラムがハンドシェイク ステップでハングする 1 つのホストで問題に直面しています。例外ステートメントを実行したり、エラーを報告したりしません。ポート 443 と https サービスがリモート ホスト上にあることを確認しました。どうやら、問題はリモート ホストに関連しています。誰でも説明できますか?プログラムを続行するにはどうすれば回避できますか?
次のコードは、関連する部分です。
SSLSocketFactory factory = HttpsURLConnection.getDefaultSSLSocketFactory();
System.out.println("Creating a SSL Socket For "+hostName+" on port "+port);
SSLSocket socket=null;
socket = (SSLSocket) factory.createSocket(hostName, port);
System.out.println("Socket created");
try {
socket.startHandshake(); //handshake
} catch (IOException e1) {
System.out.println("Handshake error: "+e1.getMessage());
socket.close(); }
System.out.println("Handshaking Complete");