IP,端口,URL的概念及在java中的运用

IP地址

用来标识网络中的一个通信实体的地址。通信实体可以是计算机、路由器等。比如互联网的每个服务器都要有自己的IP地址,而每个局域网的计算机要通信也要配置IP地址。路由器是连接两个或多个网络的网络设备。

下面通过一张图来了解IP地址的分类以及书写形式。

图片

而在java中,关于IP的操作需要有InetAddress类来完成。

InetAddress:封装计算机的ip地址 ,但是没有端口。

操作示例:

//使用getLocalHost方法创建InetAddress对象
InetAddress addr = InetAddress.getLocalHost();
//获取本机IP:10.118.8.221
System.out.println(addr.getHostAddress());
//输出计算机名 :LAPTOP-CQV096N8
System.out.println(addr.getHostName());
//根据域名得到InetAddress对象
addr = InetAddress.getByName("www.baidu.com");
//返回 百度服务器的ip:163.177.151.110
System.out.println(addr.getHostAddress());
//输出:www.baidu.com
System.out.println(addr.getHostName());
//根据ip得到InetAddress对象
addr = InetAddress.getByName("163.177.151.110");
//返回 百度服务器的ip:163.177.151.110
System.out.println(addr.getHostAddress());
//输出ip而不是域名。如果这个IP地址不存在或DNS服务器
//不允许进行IP地址和域名的映射,getHostName方法就直接返回这个IP地址
System.out.println(addr.getHostName());

端口:

IP地址用来标识一台计算机,但是一台计算机上可能提供多种网络应用程序,如何来区分这些不同的程序呢?这就要用到端口。端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。端口的表示是一个16位的二进制整数,2个字节,对应十进制的0-65535。

下面通过一张图来理解端口。

图片

在window系统中,我们可以通过以下方式来查看端口。

cmd命令:

    1.查看所有端口:    netstat -ano

    2.查看指定端口:    netstat -aon|findstr "8080"

    3.查看指定进程:    tasklist|findstr "8080"

看具体程序:使用任务管理器查看PID

在java中,我们可以通过InetSocketAddress类来操作端口。

InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1",8080);
InetSocketAddress socketAddress2 = new InetSocketAddress("localhost",9000);
//user.hrm.com
System.out.println(socketAddress.getHostName());
//localhost/127.0.0.1
System.out.println(socketAddress2.getAddress());

URL 

看看URI,URL,URN的定义和区别。

  1. URI: Universal Resource Identifier  统一资源标志符,用来标识抽象或物理资源的一个紧凑字符串。

  2. URL: Universal Resource Locator  统一资源定位符,一种定位资源的主要访问机制的字符串,一个标准的URL必须包括:protocol、host、port、path、parameter、anchor。

如:http://www.google.com:80/index.html,由4部分组成:

   协议  存放资源的主机域名  端口号  资源文件名

    iii. URN: Universal Resource Name  统一资源名称,通过特定命名空间中的唯一名称或ID来标识资源。

java关于URL的操作示例:


URL u = new URL("http://www.baidu.con:80/index.html#aa?cansu=shh");
System.out.println("获取与此url关联的协议的默认端口:"+u.getDefaultPort());//80
System.out.println("getFile:"+u.getFile()); //端口号后面的内容 /index.html
System.out.println("主机名:"+u.getHost()); //www.baidu.com
System.out.println("路径:"+u.getPath()); //端口号后,参数前的内容 /index.html
System.out.println("端口:"+u.getPort()); //存在返回80.否则返回-1
System.out.println("协议:"+u.getProtocol());//http
System.out.println("参数部分:"+u.getQuery()); //null
System.out.println("锚点:"+u.getRef()); //aa?cansu=shh
URL u1 = new URL("http://www.abc.com/aa/");
URL u2 = new URL(u1,"2.html"); //相对路径构建url对象
System.out.println(u2.toString()); //http://www.abc.com/aa/2.html

关注公众号,可以免费获取毕业设计项目、各种免费软件、资料,笔记哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之所向...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值