脑图有描绘java.net的结构。
java.net是java最早的网络编程工具包。主要是C/S结构的BIO模型,效率比较低。
常用的包有nio,以及netty包。
一、Addresses
- 处理IP协议ipv4/ipv6
- 处理socket地址(ip+port)

名词解释
| 名称 | 翻译 | 描述 |
|---|---|---|
| unicast | 单播 | 指数据包发送一个目的地址,TCP和UDP都可以 |
| multicast | 和多播 | 多播数据包同时发送到多个目的地址,只有UDP可以 |
1.1 InetAddressImpl
inetAddressImpl一系列的类需要调用本地方法。这里类是私有的,用户不可见。会被注入到InetAddress类中。

- anyLocalAddress是
0.0.0.0
1.2 InetAddress类

- originalHostName 原始的hostname的保留,对一些domain格式命名的host特别有用,比如 a.dome.s
- hostname 主机标识
- int address 地址
- family 地址簇,ipv4 标识是1,ipv6标识是2
功能
- 存储ip的元数据信息比如上面的hoder
- 调用本地方法,获取hostname,ipv4,ipv6地址,回环地址
- ip的地址是有不同性质的,比如是否是回环地址,网站地址,该地址是否有效。提供一系列is方法来判断。
- 私有方法提供缓存机制
- 工具方法提供域名解析,比如输入域名地址和域名返回Ip等
1.3 SocketAddress
ip+port的载体,被用于socket的binding和connecting或者返回值。

二、SOCKET 套接字
tcp是一个c/s结构,sockets分为Socket和ServerSocket。

本文详细解读了Java中的java.net包,涵盖InetAddressImpl、InetAddress、SocketAddress等核心类,以及TCP和UDP套接字的实现,包括Socket、ServerSocket、DatagramSocket等。此外,还介绍了URLConnection及其相关组件,如URI、URL和Connection的处理。java.net包主要用于C/S结构的BIO模型,虽然效率较低,但它是Java早期网络编程的基础。

2451

被折叠的 条评论
为什么被折叠?



