gpt4 book ai didi

java - 我正在尝试创建具有不同 URL 的套接字。我如何处理失败的连接?

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:24 27 4
gpt4 key购买 nike

我有一个数据库,其中有不同的主机,我想通过 SSL 连接到这些主机。因为主机有时是随机的并且通常是无效的,所以我在创建套接字时遇到错误。我不知道如何处理这个问题

for(int i=connect.getMinId();i<connect.getMaxId();i++){
System.out.println(connect.getHost(i));
SSLSocket socket = (SSLSocket) factory.createSocket(URL, 443);
socket.startHandshake();
SSLSession session = socket.getSession();
}

最佳答案

  1. 使用 new Socket() 创建一个未连接的 Socket。

  2. 使用 Socket.connect(address, timeout) 超时连接它。您可以选择自己的超时时间,最高可达平台默认值。请注意,Javadoc 错误地说 0 表示无限超时。它不是:它意味着平台默认值,大约一分钟,取决于错误的平台。如果超时到期,此方法将抛出 SocketTimeoutException

  3. 使用 SSLSocketFactory.createSocket(Socket, host, port, true) 将其包装在 SSLSocket 中。请注意,您必须重新指定主机和端口:这是为了 SSL session 共享目的;它不会创建新连接。

  4. 获取 session ,或开始握手。请注意,获取 session 会启动握手,您不必同时执行这两项操作。如果您对服务器证书不感兴趣,则根本不需要执行此步骤。

  5. 捕获所有 IOExceptions 并关闭套接字。

关于java - 我正在尝试创建具有不同 URL 的套接字。我如何处理失败的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17065692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com