為什么通過getHostAddress()和getHostName()得到都是IP地址,后者為什么不是主機名?而且在服務器端是怎樣的運行順序?
如圖,為什么通過getHostName()得到的不是客戶端的主機名?而是IP地址?
而且在服務器端是先調用了serverSocket類的start()方法,為什么在控制臺中最后輸出serverSocket中輸出的語句?
serverThread.start(); //統計連接過服務器的數量 System.out.println("客戶端的數量:"?+?(++count)); //獲取客戶端的IP地址和主機名 System.out.println("當前客戶端的IP地址:"?+?socket.getInetAddress().getHostAddress()? +?"\n當前客戶端的主機名:?"?+?socket.getInetAddress().getHostName());
輸出是:
客戶端的數量:1
當前客戶端的IP地址:127.0.0.1
當前客戶端的主機名: 127.0.0.1
我是服務器,客戶端說: 用戶名:ala;密碼:12789
方法的執行先后順序為什么是這樣的?
2017-09-28
因為網絡通信過程中客戶端的主機名是不會帶到服務器端的。。第二,你沒學過多線程嗎,不知道主線程和調用的線程是交替進行的嗎,都是獨立進行的。
2017-04-03
方法順序沒看出來哪兒有疑問。hostname此處就是ip地址