1
我需要知道如何在這個程序停止線程:如何停止Java線程?
public class MasterServerThread extends Thread{
private Socket socket = null;
private MasterServer server = null;
private int clientID = -1;
private BufferedReader streamInput = null;
private PrintWriter streamOutput = null;
public MasterServerThread(MasterServer _server, Socket _socket){
server = _server;
socket = _socket;
clientID = _socket.getPort();
}
public void run(){
server.Log("Server Thread " +clientID + " running");
while(true){
String test;
try {
test = streamInput.readLine();
System.out.println("Client "+clientID+": "+test);
} catch (IOException e) {
System.out.println(clientID+ " Error reading: "+e.getMessage());
}
server.handleClient(clientID, "test");
}
}
}
這是我的服務器線程的代碼。當我的客戶自行終止,我得到的錯誤的無限循環:
53088讀取錯誤:連接重置0
我知道需要在這裏做什麼,但我不知道是什麼,正是:
try {
test = streamInput.readLine();
System.out.println("Client "+clientID+": "+test);
} catch (IOException e) {
System.out.println(clientID+ " Error reading: "+e.getMessage());
}
令人驚歎的是,雖然(真正)循環實際上永遠運行... – meriton 2012-03-19 22:01:38