Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Synapse. Обработка закрытия сокета удалённой сторо


Автор: Bogdan2004 8.11.2012, 14:15
Добрый день!

 Есть задача обмен с удаленным сервером данными по TCP/IP использую для обмена TTCPBlockSocket. Иногда удаленный сервер закрывает соединение, а TTCPBlockSocket считает что соединение есть, событие OnStatus не генерируется :(
 Подскажите как отследить закрытие сокета удаленной стороной?

Автор: MetalFan 8.11.2012, 17:14
Bogdan2004, попробовать что-нибудь в него записать/из него прочитать. если свалится - значит закрыт уже.

Автор: Bogdan2004 8.11.2012, 17:51
Цитата(MetalFan @ 8.11.2012,  17:14)
Bogdan2004, попробовать что-нибудь в него записать/из него прочитать. если свалится - значит закрыт уже.

Такой подход реализован, но он "не красивый".
Хочется это сделать более корректно.

Автор: MetalFan 8.11.2012, 22:00
Bogdan2004, чем же он некрасивый? вполне себе нормальный подход.

Автор: Bogdan2004 9.11.2012, 12:43
Цитата(MetalFan @ 8.11.2012,  22:00)
Bogdan2004, чем же он некрасивый? вполне себе нормальный подход.

Идея такая, есть соединение которое устанавливается в отдельном потоке. Хочется чтобы обрыв регистрировался событий от библиотеки, а не дергать по таймеру жив/не жив.

Автор: kami 9.11.2012, 13:15
Автоматическое оповещение корреспондента при закрытии сокета возможно только, если клиент и сервер на одном компе.
Иначе - только 
Цитата(MetalFan @  8.11.2012,  17:14 Найти цитируемый пост)
попробовать что-нибудь в него записать/из него прочитать. если свалится - значит закрыт уже.


Автор: Bogdan2004 9.11.2012, 14:11
Цитата(kami @ 9.11.2012,  13:15)
Автоматическое оповещение корреспондента при закрытии сокета возможно только, если клиент и сервер на одном компе.
Иначе - только 
Цитата(MetalFan @  8.11.2012,  17:14 Найти цитируемый пост)
попробовать что-нибудь в него записать/из него прочитать. если свалится - значит закрыт уже.

в Indy это можно сделать, через события. В Synapse не получается. :(

Автор: MetalFan 9.11.2012, 18:03
Bogdan2004, подозреваю, что в инди как раз по принципу:
Цитата(MetalFan @  8.11.2012,  17:14 Найти цитируемый пост)
попробовать что-нибудь в него записать/из него прочитать. если свалится - значит закрыт уже.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)