SocketTimeOutException при создании сокета, Java - PullRequest
1 голос
/ 01 апреля 2010

Я создал образец приложения для сокета Java.
Я использовал Socket s = new Socket(ip, port) Теперь он работает нормально. но когда мое интернет-соединение очень медленное, то после долгого интервала (даже если иногда через 2 минуты) я получал SocketTimeOutException в этой строке. означает, что это дает эту ошибку при создании сокета. Я хочу, чтобы исключение было обработано должным образом, значит, если подключение к Интернету очень медленное, то, если эта ошибка возникает, это происходит очень поздно.
Я хочу, чтобы если произошла ошибка такого типа, она должна быть обнаружена очень быстро, то есть ошибка не должна возникать с таким интервалом задержки, скорее, она должна появиться немедленно.

Как этого добиться.

1 Ответ

2 голосов
/ 01 апреля 2010

Уменьшите время ожидания сокета, как:

sock.connect(new InetSocketAddress("www.google.com", 80), 500);

, где 500 - время ожидания в миллисекундах.

Вот фрагмент, который использует класс Socket:

 try { 
      InetAddress addr = InetAddress.getByName("www.google.com");
      int port = 80; SocketAddress sockaddr = new InetSocketAddress(addr, port);
      Socket sock = new Socket(); 
      int timeoutMs = 500; 
      sock.connect(sockaddr, timeoutMs); 
    } 
catch (SocketTimeoutException  e) { System.out.println("Timeout reached!");}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...