Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Вниз

TclientSocket   Найти похожие ветки 

 
ingine   (2004-12-28 20:58) [0]

Вопрос конечно глупый, но как заставить работать TClientSOcket в консольном приложении(где нет циклов обработки виндовых сообщений)?


 
VMcL ©   (2004-12-28 23:35) [1]

>>ingine  (28.12.04 20:58)

Видимо, нужно сделать цикл выборки сообщений или использовать блокирующий режим.

P.S. Зачем нужно именно консольное приложение? Возможно, подойдет GUI"шное, но без использования VCL?


 
Digitman ©   (2004-12-29 08:13) [2]


> ingine   (28.12.04 20:58)  
> Вопрос конечно глупый


с тем же успехом можно было спросить, как, мол, заставить работать другой компонент, явно или неявно использующий механизм оконных нотификаций .. TClientSocket в режиме NonBlocking в этом смысле - не исключение, он так же использует этот механизм, а значит цикл ожидания/выборки/диспетчеризации вин-сообщений в том или ином виде тобой должен быть организован


 
Seeker ©   (2004-12-29 09:32) [3]

Есть еще WSocket( эт чтоб заменить TClientSOcket) там все работает нормально.


 
Digitman ©   (2004-12-29 11:15) [4]


> Seeker ©   (29.12.04 09:32) [3]


> там все работает нормально


а TClientSOcket, надо понимать, "работает ненормально" ? Так что ли ?)


 
Seeker ©   (2004-12-29 12:08) [5]


> а TClientSOcket, надо понимать, "работает ненормально" ?
> Так что ли ?)



> Digitman ©

А ты пытался засунуть TClientSOcket в поток?
Он сразу переходит в блокирующий режим, а отсюда прощай события.
Нужно организовывать все самому.
WSocket в этом плане работает нормально,все события на месте.


 
Digitman ©   (2004-12-29 12:39) [6]


> Seeker ©   (29.12.04 12:08) [5]


> А ты пытался засунуть TClientSOcket в поток?


"засунуть" я не пытался, стиль "засовывания", увы, не мой


> Он сразу переходит в блокирующий режим


чушь ты несешь несусветную.
с какого перепугу компонент изменит режим, определяемый св-вом  ClientType, если ты сам ЯВНО его не изменишь ?


> отсюда прощай события


опять же - чушь.
до тех пор, пока ClientNype = ctNonBlocking, ничто и никуда не "пропадет".
головой просто думать надо, а не причинным местом.


> Нужно организовывать все самому


и это так сложно ?
организовать сраный по "сложности" цикл
while GetMessage do Dispatchmessage ?!


 
ingine   (2004-12-29 18:17) [7]

Дак все таки как
> организовать сраный по "сложности" цикл
> while GetMessage do Dispatchmessage ?!


 
VMcL ©   (2004-12-29 18:58) [8]

>>ingine  (29.12.04 18:17) [7]

Именно так, как написано. Разве что, можно использовать PeekMessage вместо GetMessage.


 
TButton ©   (2004-12-29 21:52) [9]


> организовать сраный по "сложности" цикл

*confused* ???


 
Digitman ©   (2004-12-30 08:20) [10]


> ingine   (29.12.04 18:17) [7]
> Дак все таки как


var
 Msg: TMsg;
..
while GetMessage(Msg, 0, 0, 0) do
 DispatchMessage(Msg);

цикл этот должен работать в том трэде, который создал объект TClientSocket

но следует учесть, что в случае конс.приложения реализация этого цикла в осн.трэде не позволит осуществлять пользовательский клавиатурный ввод "традиционным" способом. т.е. с пом. ReadLn(), ибо ReadLn() - блокирующая ф-ция



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
14-1108507168
Луарвик
2005-02-16 01:39
2005.03.06
Ура! БД MySQL


1-1109075955
Nad89
2005-02-22 15:39
2005.03.06
Кликнуть по ссылке в TWebBrowser


3-1107323920
pqr
2005-02-02 08:58
2005.03.06
dbgrid


1-1108822344
Ivolg
2005-02-19 17:12
2005.03.06
Глюк с MediaPlayer


3-1107713071
kingdom2000
2005-02-06 21:04
2005.03.06
KADao и база Access





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский