为了账号安全,请及时绑定邮箱和手机立即绑定

为什么通过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下载
官方微信