为什么SSLSocket.startHandshake()在同步时提供回调?

问题描述 投票:0回答:1

方法SSLSocket.startHandshake()的javadoc表示该方法是同步的。

但是,“see also”部分提供了“handshakeComplete”事件的回调:HandshakeCompletedListener

如果方法在握手完成后立即返回,为什么有这样的回调是有用的?

这是否意味着如果我写这个代码

SSLSocket c = (SSLSocket) f.createSocket("localhost", 8888);
c.startHandshake();

BufferedWriter w = new BufferedWriter(new OutputStreamWriter(
c.getOutputStream()));
BufferedReader r = new BufferedReader(new InputStreamReader(
c.getInputStream()));
w.write("I am client " + UUID.randomUUID().toString());
w.newLine();

只有握手完成后,我才能保证在outputStream中写入?

java ssl handshake
1个回答
1
投票

为什么SSLSocket.startHandshake()在同步时提供回调?

它并不总是同步的。

方法SSLSocket.startHandshake()的javadoc表示该方法是同步的。

不,不。它表示初始握手是同步的。

但是,“see also”部分提供了“handshakeComplete”事件的回调:HandshakeCompletedListener。

正确。

如果方法在握手完成后立即返回,为什么有这样的回调是有用的?

非sequitur ..回调总是有用的,并且该方法并不总是在握手完成后立即返回。

见Javadoc。

© www.soinside.com 2019 - 2024. All rights reserved.