• ベストアンサー

VB(Windows)からUNIXマシンのプログラムを起動?

ソケット通信のアプリを作りたいのですが、よろしかったらご指導ください。 VB(Windows)からUNIXマシンのプログラムを起動するにはどうすれば良いのでしょうか。 WinSockを使ったサンプルソースが見れるサイトを知っていたら教えてください。 また良い書籍などあれば教えてください。

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

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

telnetポートは23です。 23番に接続してください。 ウェルノウンポート(定義済みポート)についてはRFC1700で定義されます。 参考URLに一覧表があります。 telnetポートに接続後の動作は 1.recive:簡単なメッセージが数行とユーザ名要求 2.send:ユーザ名 3.recive:パスワード要求 4.send:パスワード 5.recive:簡単なメッセージ 6.send:コマンド送信 7.recive:ステータス(標準出力、標準エラー出力) 8.6と7を必要分繰り返し 9.send:ログアウトコマンド(logout,exit,^Dなど) 10.recive:簡単なメッセージ reciveは「0バイト読みこみ」まで行ってください。 1行のメッセージが分割されて送られることがあります。 sendはデータの末尾に改行(文字コード&H0A)が必要です。 Socktコントロールを使ったことが無いので生でWinSockを使ったときの例です。 Socketコントロールのサービスで多少の違いがあるかもしれません。

参考URL:
http://www.gdi.co.jp/org/port_no.html
lowfater
質問者

お礼

ウェルノウンポートのURLは大変参考になります。 ポート接続後の動作については、現在、Socktコントロールに殆ど依存していますが、回答された内容と同様の流れになっているようです。(当然ですね) 詳細な回答、真にありがとうございました。

その他の回答 (2)

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

誤解させちゃいましたね。ごめんなさい。 #1で書いた手順はWindows側なので「プロトコル依存部分の前後にはWinSockの制御が必要」という意味です。

lowfater
質問者

補足

納得しました。補足説明ありがとうございます。 ネットワーク知識が乏しいながらもがんばっているところです。 それでもWindows同士で基本的なことは何とか確認しました。 以下、大変あつかましいので、気が向いたらご回答ください。 1.rshdの動作していない場合(inetdは確認しました)、telnetで接続すると思   いますが、このときポート番号は単純に514でよろしいのでしょうか。   (ポート番号を知りたいとき、何を調べれば良いのでしょうか。) 2.1.が正しいとき、WinSockでコネクトした後、第一のメッセージ送信で   「telnet ~」を送信すれば良いのでしょうか。   (以後、telnetの範囲でシェルコマンドが使えるようになる) 3.接続が確立すれば、コマンド実行等による標準出力の結果を受取ることができ   るのでしょうか。   (WinSockのDataArrivalイベント及びGetDataメソッドは使用する)

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

残念ながら適当なサイトは知らないので言葉だけで説明します。 unix上でinetdとrshdが動作している状態ならshellポート(514)に接続してrshからリモートコマンドを実行できます。 ただし、rshはセキュリティーホールになり得るのでLAN以外の環境ではオススメできません。 rshでなくtelnet(23)でも同じ事はできますが同様の問題が発生します。 手順としては 1.rsh(またはtelnet)ポートに接続 2.ユーザ認証 3.コマンド送信 4.ステータス受信 5.切断コマンド送信 もちろん前後にWinSockの制御は必要です。 コマンドによってはuucpが使える場合もあるし、機能限定ならRPCの方が安全です。

lowfater
質問者

お礼

ありがとうございます。WinSockの制御をunix上に乗せるという点にちょっと疑問が残りますが(もしかしてWinSockを使うのは効率が良くないのかな)、回答していただいたところを中心に調べようと思います。

関連するQ&A