亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么通過getHostAddress()和getHostName()得到都是IP地址,后者為什么不是主機名?而且在服務器端是怎樣的運行順序?

如圖,為什么通過getHostName()得到的不是客戶端的主機名?而是IP地址?

http://img1.sycdn.imooc.com//58e1b876000106cf08560064.jpg

http://img1.sycdn.imooc.com//58e1b8760001779b02240035.jpg

而且在服務器端是先調用了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

方法的執行先后順序為什么是這樣的?

正在回答

2 回答

因為網絡通信過程中客戶端的主機名是不會帶到服務器端的。。第二,你沒學過多線程嗎,不知道主線程和調用的線程是交替進行的嗎,都是獨立進行的。

0 回復 有任何疑惑可以回復我~

方法順序沒看出來哪兒有疑問。hostname此處就是ip地址

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么通過getHostAddress()和getHostName()得到都是IP地址,后者為什么不是主機名?而且在服務器端是怎樣的運行順序?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號