Я хочу создать программу типа сервер-клиент, в которой клиент и сервер отправляют 3 разных сообщения друг другу, а затем закрывают соединение. Я использую потоки для запуска новых «ServerWorkers», и они имеют некоторое время l oop внутри них, которые пытаются прочитать сообщение, отправленное клиентом.
Что произойдет, если кто-нибудь попытается атаковать мой сервер и откроет тысячи соединений с моим сервером, и они не отправят серверу никаких сообщений, поэтому поток ServerWorker просто остается включенным?
Как я могу остановить эти соединения? Могу ли я установить тайм-аут для потоков, чтобы остановить их, если определенное время было превышено?
Код:
@Override
public void run() {
try {
InputStream inputStream = clientSocket.getInputStream();
OutputStream outputStream = clientSocket.getOutputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
line = bufferedReader.readLine();
outputStream.write(line.getBytes());
catch(Exception ex) {
}
}