远程桌面不能运行写个java程序远程cmd

命令转发的东西
总共 有三个类
SocketServerTest 调用服务器 cmd进程
import java.net.*;
import java.io.*;
public class SocketServerTest{
int port=2345; //端口号
ServerSocket serverSocket; //服务器套接字
public SocketServerTest() throws IOException{
Process proc=Runtime.getRuntime().exec("cmd");//掉用cmd进程
serverSocket=new ServerSocket(port); //实例化套接字
System.out.println("start server at port "+port); //在命令窗口输出提示信息
while (true){ //一直等待客户端连接
Socket client=serverSocket.accept(); //等待连接
startListener(client.getInputStream(),proc.getOutputStream()); //获得客户端指令并执行
startListener(proc.getInputStream(), client.getOutputStream()); //输出cmd运行结果
startListener(proc.getErrorStream(), client.getOutputStream()); //输出cmd运行错误
}

}
void startListener(InputStream is, OutputStream os){
new Listener(is,os).start();

}

public static void main(String[] args){
try {
new SocketServerTest();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
TelnetClient 客户端的程序
import java.net.*;
import java.io.*;
public class TelnetClient {
String host="192.168.1.99"; //Telnet服务器地址
int port=2345; //端口号
public TelnetClient() {
System.out.println("Host " + host + "; port " + port);
try {
Socket socket = new Socket(host, port); //实例化套接字
new Listener(socket.getInputStream(), System.out).start(); //输出服务器信息到控制台
new Listener(System.in, socket.getOutputStream()).start(); //输出控制台信息到服务器
} catch(IOException ex) {
ex.printStackTrace(); //输出错误信息
return;
}
System.out.println("Connected Success");
}


public static void main(String[] argv) {
new TelnetClient();
}
}
Listener 互换的线程
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
class Listener extends Thread {
BufferedReader reader; //输入流
PrintStream ps; //输出流
Listener(InputStream is, OutputStream os) {
reader = new BufferedReader(new InputStreamReader(is)); //实例化输入流
ps = new PrintStream(os); //实例化输出流
}
public void run() {
String line;
try {
while ((line = reader.readLine()) != null) { //读取数据
ps.print(line); //输出数据
ps.print("\r\n");
ps.flush();
}
} catch(IOException ex) {
ex.printStackTrace();
}
}
}
简单调用cmd进程的远程命令访问的东西
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值