WinSockでHTTPサーバ(その2)サービスプログラム
使い方は以下になります。
・ビルドして、winhttpd.exeを作成する。
・c:\WebPagesのディレクトリを作成して、HTMLファイル、画像等を用意する。
・コマンドラインから"winhttpd -install"と実行する。
・SCMに登録(サービス名:Win32 Http Server)されたことを確認する。
・SCMから開始する。
・ブラウザからアクセスをして表示を確認する。(http://サーバ名/index.html等)
・停止をする場合は、SCMから停止をする。
・SCMから削除する場合は、 "serviceHello -remove"と実行する。
また、コマンドラインから"winhttpd -debug"で実行すると、コンソールアプリケーションで起動されます。(終了は強制終了で)

ソースはお手数ですがダウンロードしてご覧下さい。
動作確認をしたところ、特にCPUに負荷をかけるとか、すぐに動かなくなるとかの問題はなさそうです。ただ、実際の開発ではサービスプログラムは常時稼動している必要があるため、安定性、連続運用テスト等、いろいろなテストが必要になってきます。
今回は、サービスプログラムの部分もサーバアプリケーションの部分もC言語(Win32API)ベースなので、結合してサービスアプリケーションにするのは難しくなかったです。ということは、実際の処理の部分(今回はサーバアプリケーションの部分)を何ベースで作成するか(例えば、Win32API、MFC、.NET)が決まれば、サービスの部分もそれに合わせた作り方をするのがいいかと思います。
VC++ 6.0のプロジェクトファイルは以下に置きました。
プロジェクト一式
このプログラムを利用しての不具合、不利益には一切の責任を負いかねます。ご了承ください。
Windowsプログラミング関連記事
Posted by nishida at 17:29:13


