По умолчанию время ожидания сокета истекает, но вы можете изменить это, если действительно хотите. См. Вызов Socket.setSoTimeout () (нулевой тайм-аут означает «неопределенный»).
N.B. Даже если вы укажете нулевой тайм-аут, ваше O / S может или не может фактически позволить вам держать сокет открытым неопределенно долго. Например, незанятые сокеты могут закрываться через определенное время. В окружающей среде, например общедоступные среды веб-хостинга, не исключено, что домашняя программа также запускается (скажем) один раз в день и отключает незанятые сокеты.
И, конечно, вещи происходят в сетях. В любом случае, вы не должны полагаться на сокет, который остается открытым бесконечно ...