Помимо ограничений дескриптора файла ОС, указанных hroptatyr, вы также можете убедиться, что вы используете повышенное значение для невыполненного соединения в сокете слушателя.Это позволит поставить больше соединений в очередь, прежде чем ОС вернет сообщение «Соединение отказано», если ваше серверное приложение на мгновение станет занятым и не сможет достаточно быстро отвечать на входящие соединения.
Если вы используете ServerSocket в Java вы можете указать желаемое отставание в качестве аргумента для конструктора:
ServerSocket server = new ServerSocket(listenPort, 50);