2012-03-06 8 views
-4

localhostにsendTCPBytes1を実行した後、このsystem.exit(0)が実行されない理由は何ですか?Java - なぜsystem.exit(0)が実行されないのですか?

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(); 
} 
+1

このコードは意味がありません。 'C'とは何ですか?どこから 'killerButton'が呼び出されましたか? – Jivings

+1

代わりに何が起こるのですか? – oers

+1

それが呼び出されていないことをどのように知っていますか? – Nishant

答えて

1

ソケット接続が失敗した場合など。 IOExceptionをスローすると、System.exit(0)は呼び出されません。

1

これは実際には私が思うように動作すると仮定すると、readLine()はブロッキングコールです。入力が全くない場合は、無期限に待機します。

関連する問題