CAsyncSocket
Проблема следующая: есть клиент, есть сервер. Между ними есть соединение через CAsyncSocket::OnAccept. Они каждые n секунд перезваниваются с целью проверки этого самого коннекта. Если его нет, то сокет закрывается. Если сеть падает ( коннекта нет ), то при попытке закрытия сокета вылетает ошибка по поводу обращения прогой в не тот адрес; и клиент и сервер вылетают. Основной трабл в том, что в деструкторе CAsyncSocket вызывается Close, из-за чего собсна мы и вылетаем. Есть ли способ обойти это? Делать все через UDP не хочется...
Цитата:
Originally posted by Jeff
Проблема следующая: есть клиент, есть сервер. Между ними есть соединение через CAsyncSocket::OnAccept. Они каждые n секунд перезваниваются с целью проверки этого самого коннекта. Если его нет, то сокет закрывается. Если сеть падает ( коннекта нет ), то при попытке закрытия сокета вылетает ошибка по поводу обращения прогой в не тот адрес; и клиент и сервер вылетают. Основной трабл в том, что в деструкторе CAsyncSocket вызывается Close, из-за чего собсна мы и вылетаем. Есть ли способ обойти это? Делать все через UDP не хочется...
Проблема следующая: есть клиент, есть сервер. Между ними есть соединение через CAsyncSocket::OnAccept. Они каждые n секунд перезваниваются с целью проверки этого самого коннекта. Если его нет, то сокет закрывается. Если сеть падает ( коннекта нет ), то при попытке закрытия сокета вылетает ошибка по поводу обращения прогой в не тот адрес; и клиент и сервер вылетают. Основной трабл в том, что в деструкторе CAsyncSocket вызывается Close, из-за чего собсна мы и вылетаем. Есть ли способ обойти это? Делать все через UDP не хочется...
Наследуй свой класс от CAsyncSocket и пиши свой деструктор. Остальное не изменяй.
Или я не так проблему понял?