我創建運行下面的代碼一個新的線程:關閉ServerSocket - 如何正確檢查客戶端套接字是否關閉?
public static void startServer() throws IOException {
serverSocket = new ServerSocket(55000);
Socket clientSocket = serverSocket.accept();
}
上面的代碼是在一個線程中運行。現在,在我的主類中,我成功創建了一個連接到服務器的套接字 ,並且檢查了它的完整性,這很好。這裏是代碼:
Socket testServerSocket = new Socket("127.0.0.1", 55000);
assertEquals("/127.0.0.1", testServerSocket.getInetAddress().toString());
assertEquals(55000, testServerSocket.getPort());
這運行完美。然後,再次從我的主,我殺了服務器端關閉連接的服務器連接。但是下面的代碼會一直失敗: assertEquals(false,testServerSocket.isBound());
它始終返回true。同樣,如果我檢查連接的遠程IP地址,它不會返回null,而是'/127.0.0.1'。任何想法,爲什麼這可能會發生?您的幫助
如何「殺死服務器連接」?調用serverSocket.close()? – 2011-02-15 17:33:14