我在服務器和兩個客戶端之間實現了多線程連接,但是當我啓動我的程序時,服務器啓動了一個無限循環。這是一個問題,因爲我的服務器還實現了一個圖形界面,因爲它被這個循環阻塞,所以無法運行。我想補救,選擇一個不同的條件來停止我的週期,而不是使用while(true)
週期。 這裏是我的循環代碼:控制多線程連接的條件
public Socket attendi(){
try {
System.out.println("inizializzo il server");
ss = new ServerSocket(PORT);
while(true){
System.out.println("server pronto in ascolto");
s = ss.accept(); //s is a global Socket object
ThreadServer newConnection = new ThreadServer();
newConnection.connect(s);
System.out.println("connessione stabilita");
}
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
return s;
}
你能推薦一個很好的條件時,有沒有更多的客戶端試圖連接到服務器時將停止循環?
這樣我的循環會停止,當我關閉我的窗口,對吧?但我的問題是,窗口既不打開 – salvo9415
啊,我的誤解。這是否有助於更多? :) –
也謝謝! – salvo9415