Портирование последовательного демона + PHP на Windows - PullRequest
1 голос
/ 18 мая 2011

У меня есть система Linux с:

  • демоном, который связывается с другим устройством через порт RS232.
  • веб-сайт php + javascript, который общается с демоном через сокет.

Теперь босс хочет выяснить, сколько нужно усилий, чтобы перенести все это на Windowze.

Никогда прежде не программируя на Windows, я бы хотелспросите, насколько легко / сложно это будет и каковы варианты.

Спасибо,

1 Ответ

2 голосов
/ 25 мая 2011

PHP, вероятно, будет работать как есть.Javascript запускается в веб-браузере и будет работать как есть.Ваш демон - это служба на Windows.По-видимому, он слушает сокет для команд с веб-страницы через JavaScript.

Вы не указали, на какой язык вы ориентируетесь.Некоторые языки, такие как C # dot Net, имеют встроенные библиотеки для создания чистых сервисов, которые могут приостанавливать, останавливать, запускать и взаимодействовать с системой управления службами Windows.C # будет хорошим выбором для создания службы, которая может легко устанавливать и удалять себя, и она поддерживает хорошее управление сокетами высокого уровня для прослушивания кода PHP и JavaScript.Я использовал Perl, C #, C ++ и даже Visual Basic, работающий в качестве службы, поэтому выбор за вами.

Если вы выбираете язык Windows, который компилируется в какой-то .EXE, то низкоуровневый способ добавления службы заключается в следующем.Вам понадобятся INSTSRV.exe и SRVANY.EXE, которые входят в состав Windows Resource Kit или могут быть легко загружены с помощью быстрого поиска в Интернете.

Короткая версия:

После того, как вы получитеrunnign сервера, когда вы вошли в систему и отлажены, установите сервер APP как обычно в каталог C: \ Program Files \ APP.Это было бы приложение, которое подключается к последовательному порту и делает то, что вы хотите через сокеты.

Скопируйте instsrv.exe в каталог C: \ WINDOWS \ system32 /

Скопируйте SRVANY.EXE вC: \ Program Files \ YOURAPP

В командной строке выполните эту команду - INSTSRV YOURAPP "C: \ Program Files \ YOURAPP \ srvany.exe"

Запустите редактор реестра (REGEDT.EXE)

В разделе HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ YOURAPP: создайте ключ (папка) «Параметры»

Под этим ключом создайте строковое значение REG_SZ с именем Application и добавьте эти данныеC: \ Program Files \ YOURAPP \ YOURAPP.exe

Закройте Regedit, затем откройте консоль служб в инструментах администрирования или запустите, запустите services.msc, подтвердите, что он настроен на автоматический запуск и учетная запись входаLocalSystem.Затем снимите флажок Разрешить службе взаимодействовать с рабочим столом.Если вы нажмете на это, он будет прерывать вас в окнах Windows 7 всякий раз, когда он пишет на экран.

Запустите службу, проверьте в диспетчере задач, вы увидите, что YOURAPP.exe внутри, а если вы остановите службу, YOURAPP.exe исчезнет.

Длинная версия

Подробности об этом на http://support.microsoft.com/kb/137890

...