如何让这次运行不止一次?

时间:2014-09-29 11:43:43

标签: java serversocket

此代码只运行一次。它用于根据其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();
}

2 个答案:

答案 0 :(得分:0)

尝试在完成服务器

后关闭连接

如果您想多次运行代码,可以解决这个问题,并附带从流中读取的信息

答案 1 :(得分:0)

ServerSocket只能在关闭的同一端口上运行一次。 如果没有,你会得到AWT错误, 如果你真的需要在同一台机器上运行多个实例(我不知道为什么), 您可以尝试在另一个端口中打开另一个服务器套件。

不是很优雅。