• ベストアンサー

Javaで

相手のコンピューターにこっちにあるプログラムとかを実行してもらえますか? たとえばC言語で書いたプログラムの実行ファイル a.outがあったとします。 そして相手のコンピュータにipアドレスを指定して この実行ファイルを実行してもらうようなコマンドとかjavaのメソッドとかC言語の関数とかありますか? JavaやC言語でなくてもそのような方法があるならどれでもかまわないので教えてください。

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

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.5

>connection が確立できませんと出ました。 >もちろんパスワードはあっていますし、testというアカウントは存在します。これはなんででしょうか? たぶん相手側のコンピュータでrexecを受け付けていないだけでしょう。 相手側でrexecサービスを起動するなどの設定が必要です。 ちなみにrexecコマンドはWinXPならCygwinを使わずとも標準で利用可能です。

strechman_taka
質問者

お礼

みんなありがとう(^0^) こんな制限能力者の僕にやさしくしてくれて!! 天国のママもみんなのやさしい気持ちに感謝しています! ありがとう!!!!!!!!! ござい¥ました

その他の回答 (4)

  • sasadora
  • ベストアンサー率68% (59/86)
回答No.4

関数1つとかで簡単に、リモートのコンピュータのプログラムを実行する方法はありません。誰かに勝手にフォーマットコマンドとかを実行されたら、困りますからね。 実現するには、実行される側にもなんらかの受け口が必要になります。 プログラムでリモート実行の受け口を作る方法でもいいのですが、他の方々が書いてあるような仕組みを用意してあげないといけません。 OSにリモート実行の仕組みが用意されているので、その仕組みを利用する方法もあります。 WindowsやUnixは、下記URLにあるようなrexecを使用してリモート実行を実現できるようです。 プログラムで様々な実行の仕組みを作り上げるのもいいですが、OSが用意された仕組みを利用するのも手だと思います。 http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/rexec.shtml http://www.linux.or.jp/JM/html/netkit/man1/rexec.1.html

strechman_taka
質問者

補足

みんなありがとうなんて親切なんだろう。感動しました。 実は僕のやりたいことはこんなことです。 あるベンチマークがあります。そのベンチマークをあいてのマシンのサーバで実行させてその実行結果をとりたいです。もちろん相手の許可を得ているという条件です。 そこで考えたのが相手のマシンにそのベンチマークを置いてもらってそれをこっちのプログラムで実行してその結果をもらうという方法でした。だからこのような質問をしたのです。もしかしたらもっとうまい方法があるかもしれません。あるならまた教えてほしいです、 でいろいろ案をみんなが提供してくれていますね。 rexecをちょっとやってみました。ところがrexecがなんかうまくいきません。あるネットワークの中にchitoseというマシンがあり、 以下のようにcygwinから打ってみました rexec chitose -l test cat これでパスワードの打鍵を求められるのでいれると connection が確立できませんと出ました。 もちろんパスワードはあっていますし、testというアカウントは存在します。これはなんででしょうか?

  • brax3
  • ベストアンサー率36% (17/47)
回答No.3

AのマシンはSocketを利用してポートで命令を待ち受けておいて、Bのマシンからそのポートへ特定のパケットを送るような仕組みを作ればよいです。 メッセンジャでメッセージを送信したら相手のPCでポップアップが上がるのと同じ仕組み。 Socketについてよく調べてみてください。どの言語でも仕組みは同じです。

回答No.2

Cは知りませんので、Javaでの話を書きます。 通常はそのような場合、サーブレットやクライアントサーバーシステムで通信を行います。ので、strechman_takaさんが質問されているような技術そのものはほとんど利用しません。 ドンピシャな機能としてRMIという技術があります。RMIとはRemote Method Invocationの略です。その名称からも機能が想像できるでしょう。ただ、今はもう古い技術とされ、その存在すら知らない人も増えてきています。 技術的な解説や使用は下記URLを参照してください。 http://java.sun.com/j2se/1.4/ja/docs/ja/guide/rmi/index.html http://java.sun.com/j2se/1.4/ja/docs/ja/guide/rmi/spec/rmiTOC.html

strechman_taka
質問者

お礼

二人ともありがとう!! 僕我考えてたのはSNMPを使うと相手の情報がとってこれるので、SNMPに新しいOIDを定義してそれを呼び出せばその新たに定義しておいた情報を返してくれるって言う方法を考えていました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

telnetでログインできるようになっていたら、実行できると思いますが・・

関連するQ&A