![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TClientSocket (используемый внутри TServerThread.ClientExecute) не видит обрыва сессии [D5, Win2k]
Ohtori_Akio © (2001-12-15 18:20:00)Привет всем.
Беда такая - написал это я tcp-proxy на основе TServerSocket в stThreadBlocking. Казалось бы, чего уж проще - при попытке соединения на TServerSocket запускается тред, в нём создаётся TClientSocket, через него открывается исходящее соединение, а потом гоняются байты из входящего в исходящее и обратно.
Только вот беда - если TClientSocket ничего не передает, а соединение с удаленным сервером (например, irc :-) обрывается - TClientSocket на это никак не реагирует. Никаких событий в нём отследить не удаётся. Использую его при TClientSocket.ClientType := ctBlocking, как и положено.
Буду благодарен за советы (я прилежный чайник, поэтому нужно подробно). Есть тестовый пример, где есть проблема, но ничего лишнего - могу выслать.
Решение проблем через таймауты не устраивает.
Спасибо за внимание. :-)
Ohtori_Akio (2001-12-17 17:38:00) [1]Спасибо.
Ну вот потому и думаю, что не реализую - если сам не разберусь, в чём грабли.
nikkie (2001-12-17 15:40:00) [2]то, что ты пытаешься сделать, уже сделано в TIdMappedPort из indy.
"я потом с ними не реализую нужные мне вещи" - почему ты так думаешь?
Ohtori_Akio (2001-12-16 20:52:00) [3]Я уточнил проблему на ещё более тестовом примере :-)
Суть в следующем - если я создаю TClientSocket, скажем, по клику - всё происходит замечательно, но стоит мне создать TClientSocket внутри TServerClientThread.Execute - и у меня события TClientSocket не выполняются (в том числе и столь нужный мне OnDisconnect).
Как заставить их выполняться?
Ohtori_Akio (2001-12-16 17:57:00) [4]Так я и пользуюсь готовыми. TClientSocket. Ещё более готовые компоненты мне не нужны - я потом с ними не реализую нужные мне вещи.
Ghost_Old. (2001-12-16 15:38:00) [5]Как решить твой вопрос не знаю, но если нужно решить задачу..то можно воспользоваться..готовыми компонентами