Почему IOException
после тысяч вызовов создания сокетов?
Я сделал простой серверный код (Java), который принимает соединения, затем создает поток, считывает сокет и отправляет другой символ клиенту. Клиентский код начинает выполнять цикл (достаточно длинный, чтобы воспроизвести проблему) и в каждом цикле создает 50 потоков. в каждом потоке создается клиентский сокет на серверную машину и отправляет символ, а затем считывает из сокета символ, который сервер отправляет обратно. Затем и клиент, и сервер закрывают сокет.
Через некоторое время я замечаю, что на стороне клиента я получаю исключение при создании клиентского сокета. Есть ли какие-то ограничения, которые я должен учитывать, чтобы работать правильно, или это должно работать в бесконечном цикле?
Я имею в виду ситуации, когда, возможно, после достаточно длительного времени цикла клиентская сторона пытается связать новый сокет с портом на клиентской машине, который все еще привязан к сокету, который находится в состоянии ЗАКРЫТО, но этот период времени должен быть прошло, чтобы быть освобожденным еще не пройденным ядром. (извините, не знаю официального названия этого периода времени) Клиентская и серверная машины — это две системы Linux в VMware.