Итак, банальная избитая тема... Но меня как-то поразил эффект. Расскажите на какие настройки сокетов мне глядеть...
А ситуация такая:
- клиент и сервер на разных машинах. Связаны потоковым соединением. На сервере неблокируемый send(), на клиенте блокируемый read().
- Вырываем шнурок из любой машины => соединение на клиенте засыпает, сервер через некоторое время соединение закрывает совсем (смотрю netstat-ом и socklist-ом).
- Вставляем шнурок. И тут начинается самое интересное... Иногда клиент "понимает", что сеодинение закрыто на серверной стороне -- тогда все ок -- завершение, переконнект и победа. Иногда он продолжает упорно висеть в recv()... И вышеупомянутый netstat твердо уверен, что соединение существует! ;\