You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by bu...@apache.org on 2002/07/19 04:56:28 UTC
DO NOT REPLY [Bug 10973] New: -
Setting Socket Timeouts
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10973>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10973
Setting Socket Timeouts
Summary: Setting Socket Timeouts
Product: Commons
Version: 2.0 Alpha 1
Platform: All
OS/Version: All
Status: NEW
Severity: Normal
Priority: Other
Component: HttpClient
AssignedTo: commons-dev@jakarta.apache.org
ReportedBy: warren@dubelyoo.com
I was writing test code to use the setSoTimeout(int millis) method to set a
timeout value when connecting to a URL. It appears to me that no matter what I
set the timeout to be a HttpConnection will try to connect but uses some other
timeout value(I'm guessing the OS's default value). I looked at the code for
HttpConnection and it uses the Socket(host,port) constructor which tries to
connect write away. I'd like to suggest the following code below so the timeout
is set before first the connection is even made.
/* Compile the code as is and it should timeout within a sec. If you
* uncomment the first two lines after the try statement and comment
* out the other socket connect statements and run the code again you will
* notice write away that the timeout is something else because it connects
* right away in the constructor. Its like the timeout is worthless at this
* point. As a matter a fact the code should never get there.
* This all assumes that 192.168.168.50 is not on your network.
*/
import java.io.*;
import java.net.*;
public class SocketTest {
public static void main(String[] args) {
long start = System.currentTimeMillis();
try {
//Socket socket = new Socket("192.168.168.50",80);
//socket.setSoTimeout(1000);
//Setting timeout before the connection is made.
Socket socket = new Socket();
InetSocketAddress sAddress =
new InetSocketAddress("192.168.168.50",80);
socket.connect(sAddress,1000);
} catch (UnknownHostException e) {
System.out.println(e);
} catch (SocketException e) {
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
}
System.out.println(System.currentTimeMillis() - start);
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>