来自java.net.ServerSocket#accept():
, EC, ECDHE, ECDH
侦听与此套接字的连接并接受它。该 方法阻塞,直到建立连接。
我不明白在建立连接之前该方法的执行是如何停止的。我搜索了源代码但我没有看到任何jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768
循环或public Socket accept() throws IOException
。
我搜索了这个问题但无法找到解释它的工作原理。
答案 0 :(得分:1)
在PlainSocketImpl
中,您拥有native void socketAccept(SocketImpl s) throws IOException;
方法。因此它会阻止本机代码,您无需关心它是如何完成的。
答案 1 :(得分:1)
我对此并不完全确定,但我认为accept()通过一些本机lib(可能是某些C或C ++库)进行accept
系统调用。然后,accept
系统调用将阻止等待适合的传入连接。此时,它不依赖于Java,它取决于每个操作系统如何实现它。