| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > TClientSocket странно работает Connect |
| Автор: anikss 7.11.2005, 19:37 | ||
Здравствуйте! Наткнулся на такую проблему, решения которой не знаю. Нужно, чтобы TClientSocket в неблокирующем режиме соединился с сервером и сразу же отправил ему сообщение. Я пытался использовать такую процедуру:
где CS - и есть компонент типа TClientSocket, но соединение вообще не происходит до окончания исполнения этой процедуры, оно происходит сразу после окончаня ее исполнения. Соответственно, цикл repeat until... будет ждать коннекта вечно. Подскажите пожалуйста варианты решения этой проблемы. Только вариант с использованием события OnConnect я уже обнаружил, жаль, он не подходит, из-за него код разваливается на 2 части. Заранее спасибо! |
| Автор: Демо 7.11.2005, 21:21 | ||
Во время цикла твое приложение обрабатывает поступающие WIn-сообщения? |
| Автор: Демо 7.11.2005, 21:37 | ||||
На этом построены практически все варианты работы с сокетами. Непонятно, чем это не устраивает. А в приведенном выше коде достаточно в цикл добавить Application.ProcessMessages; Но это будет называться просто извращение, так как программа, вместо того, чтобы среагировать а OnConnect вхолостую крутит дурацкий цикл.:
|
| Автор: anikss 8.11.2005, 02:18 |
| Спасибо, завелось как надо! И почему сам не догадался? А насчет зачем - ну просто не люблю я события и вешать на них какие-то серьезные функции. На мой взгляд, код теряет свою наглядность. Лучше поток создать отдельный, и блокировать его не циклом, а WaitFor... - все равно это будет для меня нагляднее, чем гора обработчиков событий, и логика, размазанная по ним. |