Вопрос довольно запутанный.
Мне нужно создать демон (процесс) для Linux с использованием C / C ++
Почему он должен быть написан на Cили C ++?
Я также немного читал о PHP-демонах, но я не уверен, применимы ли они
Означает ли это, что не нужнобыть написано в C / ++?Как вы думаете, почему они могут быть неприменимы?
демон будет анализировать XML с помощью Xerces
Почему он должен использовать Xerces?Предположительно, демон должен делать что-то большее, чем просто анализ XML и составление ответа - что еще он делает?
Написание демона не является тривиальным процессом.Написание сервера сокетов не является тривиальным процессом.Это несколько упрощается за счет реализации четко определенного протокола на каждом конце.
... который, скорее, задает вопрос, почему бы просто не использовать HTTP в качестве протокола и веб-сервера для реализации серверных компонентов и отделить приложение-специфическая логика в [f] CGI-программе.И сделав еще один шаг вперед, почему бы не реализовать логику для конкретного приложения с помощью PHP.
Единственное, что сложно и быстро - это результаты, то есть успешное взаимодействие между страницами PHP и демоном
Некоторые параметры:
Написать специфическую часть приложения как страницу PHP, а затем вызвать ее через HTTP-запрос, используя curl
Запишите сервер в качестве одного сервера задач stdio и используйте [x] inetd для его вызова, обрабатывая подключение на стороне клиента как сетевой сокет (требуется, чтобы вы определили свой протокол)
Записатьразветвление серверный демон в PHP, обрабатывающий соединение на обоих концах как сетевой сокет (требует, чтобы вы определили свой протокол)
запись однопоточного серверного демона ( с использованием socket_select ) в PHP, обрабатывающем соединение на обоих концах как сетевой сокет (требуется определить свой протокол)
Конечно, в любом случаездесь я упомянул PHP выше, вы также можете использовать C, C ++, Perl, Java .... и т. д.