URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8163
[ Назад ]

Исходное сообщение
"кроссплатформенный демон"

Отправлено jackson , 19-Мрт-09 02:06 
Господа, посоветуйте! :-)

Пару лет назад была задача написать кроссплатформенный многопоточный сервер (Linux, Win, Bsd), слушающий порт.. т.д. жующий базу данных, грубо говоря.

Использовал для этого stl, pthreads.. там препроцессорных директив не мало нужно было описывать для совместимости с виндой, еще кой-какие приблуды.

Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам БД).
Решил в этот раз пойти другим путем - использовать Qt, но для демонизации нужен класс QService, а он платный - это не вариант. Собственно толку тогда от Qt.

Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же самое нормальное - изначальный вариант?


Содержание

Сообщения в этом обсуждении
"кроссплатформенный демон"
Отправлено vic , 19-Мрт-09 13:24 
>Использовал для этого stl, pthreads.. там препроцессорных директив не мало нужно было
>описывать для совместимости с виндой, еще кой-какие приблуды.

"там препроцессорных директив не мало нужно" - bad design

>Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам
>БД).
>Решил в этот раз пойти другим путем - использовать Qt, но для
>демонизации нужен класс QService, а он платный - это не вариант.
>Собственно толку тогда от Qt.

Ну напишите две функции выполняющие демонизацию, одну для никсов, вторую для винды. Или погуглите, использовать Qt совсем не означает что нельзя пользоваться и другими либами.

>Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же
>самое нормальное - изначальный вариант?

гугл тут очень адекватен :)
задача описана в общих чертах - хочу все, по всякому и везде. еще никто не смог написать такую либу ;)


"кроссплатформенный демон"
Отправлено jackson , 19-Мрт-09 21:38 
>Ну напишите две функции выполняющие демонизацию, одну для никсов, вторую для винды.

ага, так и делал, вот что Вы же сами по этому поводу думаете:
>"там препроцессорных директив не мало нужно" - bad design

не мало - это пара файлов, занимающихся этим.

>Или погуглите, использовать Qt совсем не означает что нельзя пользоваться и
>другими либами.

гуглил, в итоге все сводится к тому что бы сделать "пару функций". а зачем мне тогда использовать Qt? Она заявляет о шикарной кроссплатформенности.

>задача описана в общих чертах - хочу все, по всякому и везде.
>еще никто не смог написать такую либу ;)

причем именно такой..

> гугл тут очень адекватен :)

гугл гуглом - им всегда пользуюсь, а здесь хотел услышать высказывания, основанные на опыте. После прочтения одно из таких, например, использование Qt для демона мне стало казаться полнейшим абсурдом, хотя там класс для БД вроде не плохой.. якобы.


"кроссплатформенный демон"
Отправлено vic , 20-Мрт-09 12:00 
>гуглил, в итоге все сводится к тому что бы сделать "пару функций".
>а зачем мне тогда использовать Qt? Она заявляет о шикарной кроссплатформенности.

Qt это прежде всего либа для создания графических приложений, а не всего чего угодно, и в ней при всем желании не будет вообще всего.


"кроссплатформенный демон"
Отправлено jackson , 21-Мрт-09 00:16 
абсолютно верно, приоритет на гуевые приложения, но создание приложений без гуя там вполне приветствуется, описано и документировано. почему бы нет.



"кроссплатформенный демон"
Отправлено Arifolth , 20-Мрт-09 00:00 
>[оверквотинг удален]
>описывать для совместимости с виндой, еще кой-какие приблуды.
>
>Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам
>БД).
>Решил в этот раз пойти другим путем - использовать Qt, но для
>демонизации нужен класс QService, а он платный - это не вариант.
>Собственно толку тогда от Qt.
>
>Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же
>самое нормальное - изначальный вариант?

а почему не хотите написать posix-совместимый код и собрать это чудище под виндой  спосредством mingw или cygwin???

никаких плясок с бубном и директивами препроцессора делать не прийдётся


"кроссплатформенный демон"
Отправлено jackson , 20-Мрт-09 00:17 
судя по всему это единственный вариант нормальный, только посредством gcc.


"кроссплатформенный демон"
Отправлено Андрей , 20-Мрт-09 00:21 
посмотрите на ACE
http://www.cs.wustl.edu/~schmidt/ACE.html

"кроссплатформенный демон"
Отправлено jackson , 21-Мрт-09 00:18 
посмотрел, вполне даже, как вариант. спасибо

"кроссплатформенный демон"
Отправлено devbrain , 24-Мрт-09 01:03 
>[оверквотинг удален]
>описывать для совместимости с виндой, еще кой-какие приблуды.
>
>Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам
>БД).
>Решил в этот раз пойти другим путем - использовать Qt, но для
>демонизации нужен класс QService, а он платный - это не вариант.
>Собственно толку тогда от Qt.
>
>Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же
>самое нормальное - изначальный вариант?

POCO еще может для этого подойти http://pocoproject.org/



"кроссплатформенный демон"
Отправлено Vladyslav Lazarenko , 04-Апр-09 00:55 
>[оверквотинг удален]
>описывать для совместимости с виндой, еще кой-какие приблуды.
>
>Сейчас возникла аналогичная задача (переносимость, многопоточность, желательно унифицированный доступ к нескольким типам
>БД).
>Решил в этот раз пойти другим путем - использовать Qt, но для
>демонизации нужен класс QService, а он платный - это не вариант.
>Собственно толку тогда от Qt.
>
>Может посоветуете какую-то еще библиотеку классов С++, наиболее тут адекватную? Или же
>самое нормальное - изначальный вариант?

Boost C++ Libraries (nothing like QService, but has portable threads etc)