如何在java Socket/SSLSocket上设置读取超时?

sha*_*awn 4 java sockets ssl networking timeout

如果我有一个连接的套接字并且它正在等待(阻塞)从远程机器接收某些数据但是不知何故或其他,远程机器失去了它的连接,我怎么能使它停止阻塞但是在某个时候超时一段时间没有收到任何数据?我正在使用Scanner对象从套接字读取数据并使用PrintWriter对象进行写入,

// Get InputStream
scanner = new Scanner( clientSocket.getInputStream() );
// Get OutputStream
printWriter = new PrintWriter( clientSocket.getOutputStream(), true );
Run Code Online (Sandbox Code Playgroud)

Sun*_*hoo 6

如果使用套接字,则可以设置超时选项