此代码只运行一次。它用于根据其ipv4地址访问远程计算机。
我希望随时都可以使用并多次运行。我应该添加什么代码才能这样做以及在哪里?
public void run() {
try {
ServerSocket ss = new ServerSocket(6609);
Socket s = ss.accept();
System.out.println("connected");
String string = "";
DataInputStream in = new DataInputStream(s.getInputStream());
DataOutputStream out = new DataOutputStream(s.getOutputStream());
string = in.readUTF();
//System.out.println(string);
ProcessBuilder pp = new ProcessBuilder("cmd.exe" , "/c" , "cd " + string );
Process p = pp.start();
DataInputStream get = new DataInputStream(p.getInputStream());
String str = "";
while((str = get.readLine()) != null) {
out.writeUTF(str);
System.out.println(str);
}
System.out.println("Finish server");
} catch(Exception event) {
JOptionPane.showMessageDialog(null, event);
}
//run();
}
答案 0 :(得分:0)
尝试在完成服务器
后关闭连接或
如果您想多次运行代码,可以解决这个问题,并附带从流中读取的信息
答案 1 :(得分:0)
ServerSocket只能在关闭的同一端口上运行一次。 如果没有,你会得到AWT错误, 如果你真的需要在同一台机器上运行多个实例(我不知道为什么), 您可以尝试在另一个端口中打开另一个服务器套件。
不是很优雅。