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