Java 与ARM的持久TCP连接

Java 与ARM的持久TCP连接,java,tcp,Java,Tcp,我正在尝试编写一个简单的TCP服务器,但问题是套接字在第一次运行后关闭(顺便说一下,它在线程中运行)。我可以尝试在没有ARM(自动资源管理)的情况下重写它,在尝试之后,它会在圆形方块中移动,但我宁愿保留它 那么,有没有一种在Java中使用ARM编写简单持久TCP服务器的方法 public class Server { /* Server */ public int port = 8088; public Server (int port){ this.port = port;

我正在尝试编写一个简单的TCP服务器,但问题是套接字在第一次运行后关闭(顺便说一下,它在线程中运行)。我可以尝试在没有ARM(自动资源管理)的情况下重写它,在
尝试之后,它会在圆形方块中移动,但我宁愿保留它

那么,有没有一种在Java中使用ARM编写简单持久TCP服务器的方法

public class Server {
/* Server */

public int port = 8088;

public Server (int port){
    this.port = port;
    System.out.println("Will listen on port " + this.port);
}

public Server () {
    System.out.println("Will listen on default port " + port);
}

public void start() {

    try (ServerSocket initSocket = new ServerSocket(port);
         Socket socket = initSocket.accept();
         BufferedReader bfin = 
                 new BufferedReader(new InputStreamReader(socket.getInputStream()));
         BufferedOutputStream bfout =
                 new BufferedOutputStream(socket.getOutputStream())  
         )
    {
        String line = bfin.readLine();
        while (line != null && !"BYE\n".equals(line)){
            String answer = parseadd(line) + "\n";
            System.out.println("From client: " + line);
            bfout.write(answer.getBytes());
            bfout.write("BYE\n".getBytes());
            bfout.flush();
            line = bfin.readLine(); 
        }
        System.out.println("Exiting server while loop!");
    } 
    catch (IOException e) {
        System.out.println("Exception caught when trying to");
        System.out.println(e.getMessage());
    }

}


}

您需要一个循环调用
accept()
,并启动一个线程来管理和关闭每个已接受的套接字,而不是将其作为资源试用来测试。请参阅Java自定义网络教程。所以,我不能使用ARM来实现这一点?