首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >createSocket()在很长时间后返回

createSocket()在很长时间后返回
EN

Stack Overflow用户
提问于 2019-10-02 23:21:38
回答 1查看 30关注 0票数 0

我的代码假设向某个对等体发起一个SSL套接字,提取证书并关闭套接字。

问题是,createSocket()似乎阻塞了很长一段时间。如何设置合理的超时时间?

下面是我的完整代码:

代码语言:javascript
复制
public static void main(String[] args) throws Exception {

        SSLContext sslCtx;
        sslCtx = SSLContext.getInstance("TLSv1.2");

        sslCtx.init(null, new TrustManager[]{new X509TrustManager() {

            private X509Certificate[] accepted;

            @Override
            public void checkClientTrusted(X509Certificate[] xcs, String string) {
            }

            @Override
            public void checkServerTrusted(X509Certificate[] xcs, String string) {
                accepted = xcs;
            }

            @Override
            public X509Certificate[] getAcceptedIssuers() {
                return accepted;
            }
        }}, null);


        System.out.println("start ....");
        try (SSLSocket sslSocket = (SSLSocket) sslCtx.getSocketFactory().createSocket("156.70.54.68", 443)) {
            sslSocket.setSoTimeout(5_000);
            Certificate[] certificates = sslSocket.getSession().getPeerCertificates();
            System.out.println(certificates.length);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-02 23:41:00

不是调用socket(String,int),而是调用socket(),然后调用socket(),然后定义超时,并调用connect(InetSocketAddress,int),它将int作为超时参数。

代码语言:javascript
复制
    try (SSLSocket sslSocket = (SSLSocket) sslCtx.getSocketFactory().createSocket()) {
        sslSocket.setSoTimeout(5_000);
        Certificate[] certificates = sslSocket.getSession().getPeerCertificates();
        System.out.println(certificates.length);
        sslSocket.connect(new InetSocketAddress("156.70.54.68", 443), 5_000);
    } catch (Exception e) {
        System.out.println(e);
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58204553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档