Была такая же ситуация несколько дней назад на корпоративном компьютере, и искала его часами.
Проверьте ваш антивирус, некоторые антивирусы (например, E*** N**32
) используют сканирование TCP в реальном времени, которое делает соединение успешным, даже если на целевом порту ничего не прослушивается, но сбрасывает его позже при попытке чтения / записи из сокета.
Добавьте это к своему коду:
commSocket.getOutputStream().write(0);
commSocket.getInputStream().read();
Если вы получили SocketException прямо сейчас, вам стоит подумать о том, чтобы сменить антивирус.
В качестве альтернативы, установите точку останова в вашем приложении сразу после создания сокета, а затем используйте netstat -ano
(в Windows), чтобы проверить, какой идентификатор процесса связан с другой конечной точкой вашего сокета (которая должна быть на вашем компьютере, если вы подключиться к localhost).
Я бы посоветовал вам отключить антивирус, но в некоторых случаях даже это не помогает выгрузить поврежденный драйвер сканирования TCP ...