gpt4 book ai didi

java - SSLSocketFactory createSocket 风格之间的区别

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:11:38 38 4
gpt4 key购买 nike

在我们的产品中,我们使用 SSLSocketFactory 创建到服务器的 SSLSocket。在创建到服务器的套接字时,我们根据产品配置使用两种方法之一:

(1) 我们创建一个标准套接字,然后将其包装在 SSLSocket 中。

SSLSocketFactory factory = ...
Socket s = new Socket(host, port);
SSLSocket sslSocket = (SSLSocket)factory.createSocket(s, host, port, true);

(2) 我们简单地创建一个 SSL 套接字:

SSLSocketFactory factory = ...
Socket socket = factory.createSocket(host, port);

在我们的测试环境中,这两种方法都同样有效。然而,在不同的客户站点,我们发现在某些情况下,其中一种方法会导致严重延迟,而另一种方法会立即连接(每次都使用不同的方法)。这是不一致的,有时是不可重现的。

谁能说出这些连接方法在理论上的区别是什么,以及在什么情况下应该推荐哪种连接方法?

最佳答案

套接字编程中的重大延迟几乎总是 DNS 延迟。您需要知道 Java 会反向 DNS 以及正向 DNS。确保您可以在所有主机上将所有相关的对等主机名解析为 IP 地址,反之亦然。创建要连接的 Socket 或 InetAddress 或两者都会产生延迟。如果你单独这样做,你会在调用 createSocket(socket, ...) 之前看到那里的延迟。如果您让 SSLSocketFactory 通过调用 createSocket(host, port, ...) 创建它自己的 Socket,延迟将在此时发生。

关于java - SSLSocketFactory createSocket 风格之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12892254/

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