こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

デスクトップアプリからサーバにアクセスする

Visual Studio (C++)で作成したモジュールの使用状況を収集するために、
アプリを起動する度に、サーバに接続し、そのサーバにログを残す
という仕組みを作りたいと考えています。

(本屋で物色したのですが結局、該当する本はわかりませんでした)

セキュリティや拡張性などを考えると
おそらく実現の方法はいろいろあると思われますが、
まずは”動かす”を第一に考えています。


1.アプリからサーバにアクセスするのは、どういった仕組みを利用するのが
2.サーバ側はどのような構成になるのでしょうか。
3.サーバ側で受け取った情報をDBに書き込むにはどのようにするのか


ネットや書籍で調べてみると
  サーバとDBとの接続は
「TomcatからJDBCを使用してデータベースMySQLにアクセスする」や
  「PHPからMySQLにアクセスする方法...」
  等々なんらかの情報があるのですが、
  アプリからサーバへのアクセスの方法は、
  自分にはどれがそうなのかわかりませんでした。
  
  的外れのことをいっているかもしれませんが、教えていただけますとありがたいです。

投稿日時 - 2012-08-25 10:23:11

QNo.7662309

困ってます

質問者が選んだベストアンサー

>モジュールからサーバにアクセスして、サーバ側のローカルファイルなどに書き込むなどして
>ログを残す といった箇所は全く経験がなく検討がつきません。

Apacheサーバーを含めて主要なサーバーアプリはアクセスがあったページのログを自動で残す機能がありますから
単純にダミーのページを一つつくってクライアント側から起動時にバックエンドでそのページにアクセスするように
しておけばサーバー側でアクセスログから時間と起動した端末のIPアドレスが割り出せます。

もう少し詳細な情報を自前のデータベースに取り込みたい場合はPHPなどで動的ページを作成しページへの
アクセス時のURLの「?」以降にパラメータを記載してサーバー側で情報を受け取って処理する方法があります。

例)
http://xxx.xxx.xxx.xxx/index.php?cliant=xxx&state=xxxxxx



ようするにクライアント側からは積極的にデータベースの更新には動かずページを見に行くだけに留め
サーバー側でページを見に来た相手を記録してログとして残すわけです。
確実性という点では若干の不安が残りますがデータベースの接続、更新、切断の手間に比べれば手軽に実装できます。

投稿日時 - 2012-08-27 14:19:46

お礼

お礼が遅くなりましてすみません。
再度の回答ありがとうございます。

閉じられたネットワーク内で、記録用に使うのみ
(悪意あるユーザはいないと想定できる環境)
ですので、まずは、教えて頂いた方法でトライしたいと思います。

ありがとうございました。

投稿日時 - 2012-08-29 07:07:30

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

おそらく一番簡単で確実なのはwindowsのファイル共有を利用してサーバー側に共有フォルダにテキスト形式で書き込むことだとおもいます。これならばクライアントがwindowsならばほぼ確実に動作しますし設定や動作確認も簡単です。

それだとログを外部から読まれてしまう危険があるという場合はWEBサーバーを立てて起動の際にそのサーバーにアクセスする形にするのが良いとおもいます。ネット関係の機能は昨今どのPCにも搭載されておりますから動作についてはあまり心配しなくてもいいかとおもいます。


逆にデータベースに直接アクセスする方法ですとデータベースへの接続用のモジュールが全てのクライアントで必要になりますのでインストールの手間がかかるようになってしまうため、あまりお勧めいたしません。

投稿日時 - 2012-08-25 11:56:51

補足

さっそくの回答ありがとうございます。

>一番簡単で確実なのはwindowsのファイル共有を利用してサーバー側に共有フォルダにテキスト形式で書き込むことだとおもいます

確かにこれでしたら一番簡単で確実にできそうです。
 
 
 後学のため教えてください

>WEBサーバーを立てて起動の際にそのサーバーにアクセスする形にするのが良いとおもいます。

 これを実現するには、apacheなどでサーバをたて、クライアントのモジュールから
 アクセスするといったイメージでしょうか。
 
 apacheサーバをたてて、そこでwikiなどのWebページを作成するというのは経験があり
 イメージがわくのですが、
 モジュールからサーバにアクセスして、サーバ側のローカルファイルなどに書き込むなどして
 ログを残す といった箇所は全く経験がなく検討がつきません。
 winsockを用いて、モジュールとサーバ間とでコネクションをはって、、
 というイメージなのでしょうか。

 再度の質問で恐縮ですが教えて頂けますとありがたいです。  

投稿日時 - 2012-08-25 15:09:23

あなたにオススメの質問