有时,当我尝试通过 Wi-Fi 打开 TLS 连接时,我会遇到 EOFException
Connector.open("tls://sub.domain.com:443;deviceside=true;interface=wifi;EndToEndRequired");
对 Connector.open()
的调用正在阻塞。 EOFException
在调用 Connector.open() 后约 10 秒抛出。目前,我无法检查服务器端发生了什么。
编辑:
对 Connector.open() 的调用是从非主事件线程的线程进行的。该问题出现在运行 OS 6 的各种设备上,但我认为该问题不是特定于操作系统的。
关于如何解决这个问题或可能导致错误的原因有什么想法吗?
更新:
在某些情况下,对 Connector.open() 的调用也产生一个包含在 TLSIOException
中的 TLSAertException
。异常不会立即抛出,而是在大约 10 秒后抛出,如前所述 EOFException
。
最佳答案
最后,我能够在服务器端捕获 TLS 握手,我看到了以下内容:
- 服务器收到客户端问候消息
- 服务器响应了Server Hello消息
- 客户端 key 交换大约 10 秒未从客户端收到
- 服务器关闭了与客户端的连接
因为我看不出有什么办法可以影响 Connector.open()
流程,所以我唯一能做的就是在 catch 之后重试(我从来没有看到它连续发生两次)
ing EOFException
或 TLSAlertException
(可能还有其他与 TLS 相关的异常)。
关于blackberry - 尝试使用 Connector.open() 打开 TLS 连接时在 BlackBerry 上抛出 EOFException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9296561/