Как исправить & ldquo; исключение в ветке & rdquo; main & ldquo; java.net.SocketException: сброс подключения & rdquo;

0
задан Bert 20 January 2019 в 01:19
поделиться

1 ответ

Итак, Connection Reset означает, что розетка была закрыта с другого конца. Это вполне логично, если учесть, что делает ваш «сервер».

Когда клиент подключается, ваш сервер принимает соединение, считывает из файла до 2002 байт, отправляет его клиенту и завершает работу приложения. В этот момент сокет sr будет просто закрыт вместе с остальными ресурсами приложения. В этот момент клиент, который все еще читает из InputStream, получит уведомление о том, что сокет больше не действителен, и это исключение выдается.

Вы должны проверить, успешно ли написано testfile.txt. Это может быть , может быть в порядке, хотя я бы не стал так внезапно отключать сервер. Я бы позволил клиенту изящно закрыться или тайм-аут соединения с клиентом после бездействия, потому что вы можете рискнуть получить ошибку Connection Reset перед чтением всех данных из буферов TCP. (Ошибки TCP, как правило, передаются быстрее.)

0
ответ дан jbx 20 January 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: