私のマシン(PCのローカル)に接続されているターゲットマシン(* nixベース)があります。このターゲットでいくつかのコマンドを実行したいと思います。
だから、私は同じことを達成するために Java ソケットを使用しています。
socket = new Socket("100.200.400.300", 23, null, 0 );
remote local
ここで、上記の行の後に -
socket.isConnected() returns true.
今、私はこの Socket オブジェクトの I/O ストリームを持っています。
while((string = bufferedReader.readLine()) != null) {
outputStream.write(string .getBytes());
outputStream.flush(); }
ローカル ファイルからコマンドを読み取り、ターゲット マシンで実行するためにソケット オブジェクトに書き込むバッファ付きリーダー。ソケットから読み取るコードの下-
while((myIntVar = is.read()) != -1) {
//Below line prints some junk data ... hash, updaward arrow and spaces and then
// loop hangs to raise a Socket I/O exception.
System.out.println((char) i);
stringBuffer.append((char) i);}
ここで、ソケット接続が既に確立されているので、コマンドを渡すだけで、それらのコマンドは反対側で実行されるはずです(間違っている場合は修正してください)。
しかし、これは機能していません。上で述べたようにジャンク文字が表示されますが、もう 1 つあります。ソケット接続を確立するためにユーザー名とパスワードを渡しません。telnet の場合と同じように渡す必要がありますか (どのように... ? ここで迷子になります)。
そして、情報のために-上記のコードは私が持っているすべてです(他のさまざまなスレッドで言及されているサーバーまたはクライアントコードはありません)。