- ベストアンサー
デスクトップアプリからサーバにアクセスする方法とサーバの構成についての質問
- Visual Studio (C++)で作成したモジュールの使用状況を収集するために、アプリを起動する度に、サーバに接続し、ログを残す仕組みを作りたい
- 質問1:アプリからサーバにアクセスする方法は何か
- 質問2:サーバ側の構成について知りたい
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>モジュールからサーバにアクセスして、サーバ側のローカルファイルなどに書き込むなどして >ログを残す といった箇所は全く経験がなく検討がつきません。 Apacheサーバーを含めて主要なサーバーアプリはアクセスがあったページのログを自動で残す機能がありますから 単純にダミーのページを一つつくってクライアント側から起動時にバックエンドでそのページにアクセスするように しておけばサーバー側でアクセスログから時間と起動した端末のIPアドレスが割り出せます。 もう少し詳細な情報を自前のデータベースに取り込みたい場合はPHPなどで動的ページを作成しページへの アクセス時のURLの「?」以降にパラメータを記載してサーバー側で情報を受け取って処理する方法があります。 例) http://xxx.xxx.xxx.xxx/index.php?cliant=xxx&state=xxxxxx ようするにクライアント側からは積極的にデータベースの更新には動かずページを見に行くだけに留め サーバー側でページを見に来た相手を記録してログとして残すわけです。 確実性という点では若干の不安が残りますがデータベースの接続、更新、切断の手間に比べれば手軽に実装できます。
その他の回答 (1)
- saintandre
- ベストアンサー率31% (194/607)
おそらく一番簡単で確実なのはwindowsのファイル共有を利用してサーバー側に共有フォルダにテキスト形式で書き込むことだとおもいます。これならばクライアントがwindowsならばほぼ確実に動作しますし設定や動作確認も簡単です。 それだとログを外部から読まれてしまう危険があるという場合はWEBサーバーを立てて起動の際にそのサーバーにアクセスする形にするのが良いとおもいます。ネット関係の機能は昨今どのPCにも搭載されておりますから動作についてはあまり心配しなくてもいいかとおもいます。 逆にデータベースに直接アクセスする方法ですとデータベースへの接続用のモジュールが全てのクライアントで必要になりますのでインストールの手間がかかるようになってしまうため、あまりお勧めいたしません。
補足
さっそくの回答ありがとうございます。 >一番簡単で確実なのはwindowsのファイル共有を利用してサーバー側に共有フォルダにテキスト形式で書き込むことだとおもいます 確かにこれでしたら一番簡単で確実にできそうです。 後学のため教えてください >WEBサーバーを立てて起動の際にそのサーバーにアクセスする形にするのが良いとおもいます。 これを実現するには、apacheなどでサーバをたて、クライアントのモジュールから アクセスするといったイメージでしょうか。 apacheサーバをたてて、そこでwikiなどのWebページを作成するというのは経験があり イメージがわくのですが、 モジュールからサーバにアクセスして、サーバ側のローカルファイルなどに書き込むなどして ログを残す といった箇所は全く経験がなく検討がつきません。 winsockを用いて、モジュールとサーバ間とでコネクションをはって、、 というイメージなのでしょうか。 再度の質問で恐縮ですが教えて頂けますとありがたいです。
お礼
お礼が遅くなりましてすみません。 再度の回答ありがとうございます。 閉じられたネットワーク内で、記録用に使うのみ (悪意あるユーザはいないと想定できる環境) ですので、まずは、教えて頂いた方法でトライしたいと思います。 ありがとうございました。