• ベストアンサー

クライアントからサーバの関数を呼び出して実行させるには・・・?

こんにちわ。 c言語もネットワークに関してもあまり知識を持ち合わせていないので、質問したいことがうまく伝わらないかもしれませんが、よろしくお願いします。 例として、c言語の数値計算の関数(関数ライブラリ)を利用したいとします。 そこで、その関数ライブラリをサーバにおいて、その関数をクライアントから呼び出したいと考えております。とりあえず、方法はどのようなものでもかまいませんが、できるだけわかりやすく且つ簡単であるほうが望ましいです。 自分でもどうしたいのかはっきりしていないのですが、クライアントからデータをサーバに渡すのか、サーバから関数をダウンロードしてくるのかそういったことになるのではないかと(無知ながら)考えてはいるんですが・・・。 なにかよい方法なりございましたら、教えていただけないでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.3

WindowsOS間限定で考えるとActiveXと言う手があります。 VisualC++でATL COM App Wizardを選択して作成します。 ライブラリをActiveXとして作成しサーバーに配置すればクライアントからライブラリ内の関数を呼び出すことが可能となります。 ただし、ライブラリ、アプリケーションともにActiveXを意識したプログラミングを行う必要があります。 サーバーのディスク領域をクライアントがマウント可能な場合(要するに共有フォルダです)、サーバーのディスク領域にライブラリをDLLとして保管しておくことで共有フォルダ内のDLLが持つ関数を実行可能です。 ただし、実行するCPUはクライアントのCPUでありサーバーはDLLを保持するだけです。

hiko758
質問者

補足

ありがとうございます。 この方法でWebを介しても可能なのでしょうか?

その他の回答 (2)

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 先ずは、Remote Procedure Call (RPC) を検討されてみては いかがでしょうか?

参考URL:
http://www.ncad.jp/~komata/c-kouza15.htm
hiko758
質問者

補足

ありがとうございます。 勉強させていただきます。また何かあれば質問させていただくかもしれません。そのときはよろしくおねがいします。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

なぜそんな仕様なんだろう?という根本的な疑問があるのですが… 1.クライアントのOSとサーバーのOSは何ですか(バージョンも)? 2.コンパイラは何ですか(エディションとバージョンも)? 3.サーバーのファイルシステムをクライアントからリモートマウントすることはできますか? 4.ライブラリはすでに存在しますか?新規に作りますか?(すでに存在する場合)改造は可能ですか?

hiko758
質問者

補足

申し訳ありませんが、私自身何もわかっておらず、こういうことができたらいいなという感じです。よって、こういうことをするにあたって、まず可能なのかどうか、そしてできるならどういう知識が必要で、どういう方法があるのかを教えていただきたいと思っております。 で、「なぜそんな仕様なんだろう?」とはどういうことでしょうか? ちなみに質問にできる限りで答えさせていただきます。的はずれかもしれませんが、ご容赦くださいませ。 1に関して。まだマシンは1台しかありません。できればサーバにしたいと考えております。現在はWindows2000Pro。 2、4に関して。現在関数をVC++6.0で作成中。 3に関して。??? 以上ですが、よろしくお願いします。

関連するQ&A