-3
我最近在一個套接字項目。當我調試運行我的代碼,我發現一個問題,但我不能找出原因,下面是我的代碼儘管它沒有去下一行,儘管它應該結束
// some code that open a socket connection and put inputstream into a BufferedReader called 'in'
String input;
input= (String)in.readLine();
do{
System.out.println(input);
}while(input!=null);
out.close();
in.close();
Socket.close();
,你可以看到,上面的代碼創建一個無限循環,當我發送一個字符串服務器端,它保持println那個字符串。
,如果我不喜歡它下面
String input;
do{
input= (String)in.readLine();
System.out.println(input);
}while(input!=null);
out.close();
in.close();
Socket.close();
的問題解決了,和它的偉大工程。每次我從服務器站點發送一個字符串,它只是打印一次。但它沒有退出循環並轉到下一行關閉套接字連接。
所以這是我的問題。如果我把它放在do while循環中。如果循環結束並轉到下一行然後斷開連接?任何人都可以解釋爲什麼while循環只執行一次,並沒有去下一行?
最佳
謝謝你幫助男人。有3個投票給我的問題。大聲笑。是的,我知道它應該退出循環並轉到下一行。但事實並非如此。它只打印收入字符串一次,但沒有關閉套接字。這就是爲什麼我問這個問題。 – jing1988ccc
它應該執行語句,如果它退出循環。你確定它已經退出循環?還是有例外嗎? – Adarsh
也許服務器永遠不會發送空...也許你需要一個不同/額外的終止條件。 –