Добрый, опять застопорился, если не сложно помогите.
Пишу клиент серверное приложение, серверная часть должна работать как служба. как бы когда серверная часть просто как приложение всё норм работает, сообщения между клиентом и сервером бегают. Перевожу серверную часть в службу, устанавливаю её в системе, запускаю и всё клиент подключается но сообщения не доходят(
вот примеры
серверная часть:
code_31180.txt
Клиентская часть
code_31181.txt
Этот топик читают: Гость
Ответов: 37
Рейтинг: 5
|
|||
карма: 0 |
| ||
файлы: 2 | code_31180.txt [707B] [112], code_31181.txt [388B] [116] |
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
Fidel писал(а): Перевожу серверную часть в службу, устанавливаю её в системе, запускаю и всё клиент подключается но сообщения не доходятTCP_Server и TCP_Client не работают в сервисах |
|||
карма: 22 |
|
Ответов: 37
Рейтинг: 5
|
|||
nesco, спасибо, хоть и разочаровали, пойдём через фоновое приложение
можно ещё вопрос, когда стартую службу (притом служба не несёт не чего, просто пустая программа), запускается и процесс с таким же названием, останавливаю службу удаляется процесс, удаляю процесс останавливается служба, это нормально? мне казалось что если есть служба то в процессе нет необходимости. |
|||
карма: 0 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
Fidel писал(а): мне казалось что если есть служба то в процессе нет необходимостиСлужба -- это высокоприоритетный процесс у которого нет оконного обработчика сообщений |
|||
карма: 22 |
| ||
Голосовали: | Fidel |
Ответов: 37
Рейтинг: 5
|
|||
nesco, Спасибо
|
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): Служба -- это высокоприоритетный процесс у которого нет оконного обработчика сообщенийНу-ну ![]() |
|||
карма: 9 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
Galkov писал(а): Ну-нуНасколько я помню, то очередь сообщений в сервисах не обрабатывается системой. Попадались уже на это, по-моему дискуссия была между тобой и tsdima, а потом еще и Dilma присоединился к дискуссии. К общему знаменателю так тогда и не пришли, ЕМНИП. |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Упсс...
![]() ------------ Дoбавленo в 19.52: Очередь сообщений не отрабатывается нашей программой - это точно. Берешь смотришь, и видишь, что обработчик сообщений не нарисован. А вот есть ли экспериментальные данные, что сообщений нет, если этот цикл обработки сообщений нарисовать Или просто - одна бабка сказала ??? Или в каком букваре нарисано ??? Когда-то ведь, и для service -- не было. |
|||
карма: 9 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
Galkov писал(а): Берешь смотришь, и видишь, что обработчик сообщений не нарисованНо в TCP_Server, к примеру, есть обработчик, но он фиг работает. А вот если попробывать прокручивать очередь вручную при помощи doLoopMessages, у сервиса же есть тактовое событие... где-то я такое уже встречал ![]() |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Слушай, я никогда эту дурь не нюхал...
Не мое это - службы себе ставить. Однако там ЕСТЬ обработчик сообщений, при внимательном осмотре-то:
Грубо говоря, если чего-то не работает, то по другой какой-то причине. Скорее всего... |
|||
карма: 9 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
Galkov писал(а): Грубо говоря, если чего-то не работает, то по другой какой-то причинеХм, действительно есть, но вот только фиг оно работает, оказывается. Ну не работают в сервисе сторонние оконные обработчики, скорее всего Galkov писал(а): по другой какой-то причине |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
А если таймер поставить, работать будет, или нет
![]() А если Thread, onSyncExec сработает ![]() На ДА -- одни выводы. На НЕТ - другие, наверное |
|||
карма: 9 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
Galkov писал(а): А если Thread, onSyncExec сработаетНе работает, только что проверил. А вот onExec работает |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Ну про Thread я вообще случайно написал. Ежу понятно, что он и не должен работать. Там при Synchronize идет посылка сообщения CM_EXECPROC аплету, если нам не в лом было его завести. Прием - в TControl.WndProc
О чем тут говорить. А вот kol-овский таймер заводит сам TControl-окно. Одно на все таймеры, и мимо всяких аплетов. Может и заработать. |
|||
карма: 9 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
Galkov писал(а): Может и заработатьХм, Timer работает в сервисах. Тогда мне не совсем понятно, почему не работает обработчик у TCP_Server, и не только у него, кстати ![]() |
|||
карма: 22 |
|