Это выглядит как проблема XY .
То, что вы хотите измерить, действует как клиент, скорее подразумевает, что вы можете захотеть сделать больше, чем просто обнаружить открытое соединение TCP вваш сценарий, например, захватить некоторые данные.Кроме того, базовая ОС имеет множество сложных, хорошо протестированных, надежных и настраиваемых механизмов для отслеживания состояния соединений.
Хотя вы могли бы делать то, что предлагает stefo91, и пытаться манипулировать тайм-аутом приема, я не уверенесли это применяется в ожидании начального соединения.Лучшим решением было бы установить сокет на неблокирующую .Не забудьте либо:
- ввести некоторые вызовы sleep () / usleep () или
- использовать socket_select ()
если вы не хотите, чтобы ваш сценарий сжигал много ресурсов, и ничего не нужно делать.
Но в зависимости от большого количества информации, о которой вы нам не сообщили, правильным решением может быть запуск одного сценария.как сервер, а второй как монитор.Вторым может быть опрос / анализ выходных данных netstat для проверки соединения.