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

Вниз

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

 
Newfrost   (2007-02-26 08:52) [0]

Добрый день, уважаемый ALL, возник такой вопрос: пишу сервис, который должен общаться с клиентскими машинами по сети, кидаю на "форму" сервиса компонент TServerSocket, и задаю обработчики. Порт открывает как положено, но ни одно из событий не срабатывает(( С какими параметрами нужно запустить полученный экзешник, чтобы он стартанул как сервис (чтобы можно было отлаживать)
(Delphi 2006, Win Vista), но те же проблемы возникали и на других виндах (тестировал на XP и 2003)

Всем заранее спасибо!!!


 
SergGG ©   (2007-02-26 10:54) [1]

ExeName /Install


 
Сергей М. ©   (2007-02-26 10:56) [2]


> С какими параметрами нужно запустить полученный экзешник,
>  чтобы он стартанул как сервис (чтобы можно было отлаживать)


Какое отношение это имеет к


> ни одно из событий не срабатывает


?

Ты уж сначала разберись досконально с регистрацией и спецификой работы сервисов как таковых и только потом  начинай "пичкать" свои сервисы конкретной функциональностью, в т.ч. TServerSocket


 
Newfrost   (2007-02-26 13:41) [3]

Я бы с радостью разобрался, но не могу найти... Дело обстоит так: сервис запускается (через services.msc), порт открывается, когда подключаюсь и отправляю какие-либо данные не происходит событие OnClientRead (( Почитал на разных форумах, ответов нигде нет( Был бы очень признателен, если бы мне открыли глаза на то, куда нужно смотреть...


 
Newfrost   (2007-02-26 13:52) [4]

Ага, накопал вот что: сервисы не получают оконных сообщений, а работа с сокетами основана на них... Буду пытаться засунуть все это в отдельный поток и сделать сокет блокирующим... Отпишусь, если не получится...


 
Сергей М. ©   (2007-02-26 14:04) [5]


> сервис запускается (через services.msc)


Ну а что ж ты тогда спрашиваешь, как его "стартануть" ?
Вот прямо так и стартуй !
А по поводу отладки сервисов читай справку по теме "Debugging service applications".


> не происходит событие OnClientRead


В какой момент времени ты активируешь TServerSocket ?


 
Сергей М. ©   (2007-02-26 14:06) [6]


> Буду пытаться засунуть все это в отдельный поток и сделать
> сокет блокирующим


Не обязательно.
Можно оставить сервер в неблок.режиме и организовать в потоке сервиса цикл ожидания/выборки/диспетчеризации оконных сообщений.


 
Newfrost   (2007-02-26 15:43) [7]

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


procedure TService1.ServiceExecute(Sender: TService);
begin
ServerSocket1.Port := 9999;
ServerSocket1.Active := true;
while (not Terminated) do
ServiceThread.ProcessRequests(False);
end;


 
Сергей М. ©   (2007-02-26 16:16) [8]


> Newfrost   (26.02.07 15:43) [7]


Твой сервис взаимодействует с раб.столом ?


 
Newfrost   (2007-02-26 17:04) [9]

Нет, мне в принципе, все равно как он будет работать, главное, чтобы мог работать с сетью, мне нужно обрабатывать запросы клиентских компов... user-mode приложение не пойдет, т.к. пользователь может быть не залогинен, тогда некому будет обрабатывать :(


 
Newfrost   (2007-02-26 18:17) [10]

Уважаемые! Всем огромное спасибо, особенно Сергею М.! Взаимодействие с рабочим столом, как выяснилось, и было камнем преткновения! Исправил - и все работает как надо!!! Пошел читать мануалы дальше...



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

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

Наверх




Память: 0.46 MB
Время: 0.044 c
15-1191529240
TwentyTwo
2007-10-05 00:20
2007.10.28
Задать вопрос, который юридически невозможно закрыть даже методом


10-1139173733
Nadi
2006-02-06 00:08
2007.10.28
Выравнивание Картинки в тексте Word


9-1161872789
GOS
2006-10-26 18:26
2007.10.28
GLScene DCE


3-1182328308
Dust
2007-06-20 12:31
2007.10.28
fast report 2.5 проблема со строковой переменной


4-1177871978
Плиз_не_пинайте
2007-04-29 22:39
2007.10.28
Нужен файл TLHelp32.dcu





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский