Java 在setSoTimeout等待的合理时间是多少
我正在编写一个程序,需要读取表单套接字,如下所示:Java 在setSoTimeout等待的合理时间是多少,java,sockets,network-programming,Java,Sockets,Network Programming,我正在编写一个程序,需要读取表单套接字,如下所示: socket = (SSLSocket) factory.createSocket(domain, port); socket.setSoTimeout(5000); socket.startHandshake(); 我以前没有套接字编程的经验。我需要知道在抛出错误之前等待5秒是否合理?我需要设定一个时间,这样我就不会失去一个建立联系的机会 第二个问题是:当计时器开始计时时,它是否会在读数开始后停止?或者,我应该考虑程序需要完成阅读的时间吗
socket = (SSLSocket) factory.createSocket(domain, port);
socket.setSoTimeout(5000);
socket.startHandshake();
我以前没有套接字编程的经验。我需要知道在抛出错误之前等待5秒是否合理?我需要设定一个时间,这样我就不会失去一个建立联系的机会
第二个问题是:当计时器开始计时时,它是否会在读数开始后停止?或者,我应该考虑程序需要完成阅读的时间吗? 你的第一个问题基本上没有意义。您可以根据平均服务器响应时间的期望值加上在确定存在问题之前准备等待的额外时间来设置读取超时。在你的应用程序中,只有你有量化的信息,但是5s肯定太短了。一个经验法则是使用两倍或三倍的预期响应时间,这取决于方差,但实际上由您来决定 要回答第二个问题,计时器在输入read()时启动,在数据的第一个字节到达或超时过期时停止