Установка ограничения времени ожидания для readLine ()? - PullRequest
6 голосов
/ 29 октября 2011

У меня есть следующий код, который читает ответ от сервера POP через сокеты в Java. Но проблема иногда в том, что когда я использую функцию readLine () для чтения с сервера и если сервер не отвечает ни на какой ответ, мое приложение будет зависать там, ожидая ответа от сервера.

socket.connect(new InetSocketAddress("pop.server.com", 110), 3000);
input = socket.getInputStream();
BufferedReader incoming = new BufferedReader(new InputStreamReader(input));
incoming.readLine();   //This line will cause my application to hang if the server does not respond with a reply

Есть ли способ установить тайм-аут или каким-либо другим образом, когда сервер не отвечает через определенное время, приложение должно перестать ждать ответа и продолжить его другое выполнение?

1 Ответ

4 голосов
/ 29 октября 2011

Я предлагаю вам попробовать Socket.setSoTime (тайм-аут)

...