Re: Как закрыть сокет?
От: Gosha Украина  
Дата: 02.10.02 19:20
Оценка:
Здравствуйте Corvin, Вы писали:

C>Такой проблем: есть клиент и сервер. На клиенте открывается окошко куда ждут ввод, но если связь с сервером обрывается это окошко надо закрыть. Для проверки наличия связи на клиенте вызываю recv.

Проверить сокет на возможность записи в него данных можно с помощью функции select (см. аргумент writefds)
C>И если получается ошибка, окошко закрываем. Все работает если на сервере программу закрыли, но возникла необходимость это окошко закрыть с сервера из программы. А тут не получается... Делал shutdown, closesocket, — все равно, — клиент не понимает, что связь оборвалась. Неужто винда еще что-то с сокетом делает когда прога закрывается?
Ничего не понял, кто, "из кого" и кого закрывает По-яснее выражайся.
Но это вообщем-то не важно. Проблема видимо в твоей проверке recv-ом и в том, что у recv-а есть таймаут на получение данных. Видимо, пока этот таймаут не проходит — клиент висит. Так что select.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.