У меня вопрос по поводу Пока (правда). Обычно уничтожает центральный процессор компьютера. Почему в этом случае он не работает постоянно? И как я могу заставить его работать, если мне это нужно?
public void startConnection() {
try {
client = new Socket(ip, port);
out = new PrintWriter(client.getOutputStream(), true);
in = new BufferedReader(new
InputStreamReader(client.getInputStream()));
out.println("Connection started from, " + client.getLocalAddress());
out.flush();
while (true) {
String recieve = in.readLine();
System.out.println(recieve);
@SuppressWarnings("resource")
Scanner scan = new Scanner(System.in);
String send = scan.nextLine();
if (send != null ) {
out.println(send);
out.flush();
}
}
} catch (Exception e) {
System.out.println(e);
JOptionPane.showMessageDialog(null, e.toString(),
"Connection-Error", JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
}
Чтение из сокета - это операция блокировки (в зависимости от конфигурации сокета и параметров в вызове). В этом случае ОС будет блокировать вас до тех пор, пока в сокете не появится что-то для чтения.
Вы можете настроить сокет на тайм-аут операции чтения, если вам нужно.
ну это блокировка на
readLIne
на входном потоке