У пишу небольшую программку, которая раз в две минуты пытается установить tcp-соединение с рядом стоящим компом. По задумке, если соединение не удалось, то нужно перезапустить один из сервисов. Проблема в том, что когда рядом стоящий компутер перегружается или из него выдернули сеть, вызов connect() блокирует выполнение программы(и следовательно таймера) на время tcp-таймаута. Можно как-то явно указать connect'у таймаут на установление соединение(например, послали SYN, если в течение 10 секунд не приходит SYN,ACK, то connect вернет -1)?. Или подскажите какой-нибудь другой алгоритм(может нужно connect пустить в отдельном потоке, а в основном пустить еще один таймер, который по истечении 10 секунд застрелит поток, где выполняется connect)? Может лучше не создавать tcp-сессию, а пускать icmp echo request и ждать 10 секунд icmp echo reply (тогда ткните в пример как это делается на Си)? Короче, я никак не пойму с какого конца за эту задачу браться.