Java - почему system.exit (0) не выполняется? - PullRequest
0 голосов
/ 06 марта 2012

Есть идеи, почему этот system.exit (0) не выполняется после выполнения sendTCPBytes1 для localhost?

  public static void killerButton() throws IOException {
    String myCmd;          
    if (C.getOs().equals("Linux")) {
    } else {      
      System.out.println("[bug]: forceclose");
      sendTCPBytes1("forceclose", "localhost");   

      System.exit(0);
    }
  }


  public static void sendTCPBytes1(String filmfr2, String localhost) throws IOException {
    String downloaded = null;
    Socket socket = new Socket(localhost, 58888);
    DataOutputStream upload = new DataOutputStream(socket.getOutputStream());
    BufferedReader download = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String c = filmfr2;
    upload.writeBytes(c);
    upload.flush();
    String get;
    downloaded = download.readLine();
    System.out.println("[TCP]: FROM server: >>> " + downloaded);
    socket.close();
}

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Если ваше сокетное соединение не установлено, например, выдает IOException, System.exit (0) не будет вызываться.

1 голос
/ 06 марта 2012

Предполагая, что это действительно работает так, как я думаю, readLine() является блокирующим вызовом.Если вы никогда не получите никакой информации, она будет ждать там бесконечно.

...