Время ожидания в Socket.connect()
- это время ожидания соединения, которое является временем ожидания завершения TCP-квитирования. Этот тайм-аут происходит только один раз для каждого соединения.
setSoTimeout()
называется тайм-аутом чтения сокета, который показывает, сколько времени вы ожидаете чтения ожидающих байтов из сокета. Это происходит на каждом сокете, читаемом в течение сеанса TCP.
Хорошей практикой является установка обоих значений времени ожидания, чтобы не полагаться на системные значения по умолчанию, которые могут отличаться. Однако время ожидания может не работать иногда, когда вызов застрял в собственном коде. Например, тайм-аут соединения не учитывается, если брандмауэр молча отбрасывает пакет.