Java 网络编程
InetAddress 类
InetAddress 类用于表示网络地址,没有公共构造器,而是提供了如下几个静态方法来获取 InetAddress 实例:
- public static InetAddress getLocalHost()
- public static InetAddress getByName(String host)
InetAddress 有几个常用方法:
- **public String getHostAddress()**:返回 IP 地址字符串(以文本表现形式)。
- public String getHostName():获取此 IP 地址的主机名。
- public boolean isReachable(int timeout):测试是否可以达到该地址。
Socket 类
Socket 类的常用构造器:
- public Socket(InetAddress address,int port)
- public Socket(String host,int port)
TCP 网络编程
服务器端的工作过程:
- 调用 ServerSocket(int port) :创建一个服务器端套接字,并绑定到指定端口上开始监听。
- 调用 accept():监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字对象。
- 调用套接字对象的 getOutputStream() 和 getInputStream():获取输出流和输入流,开始网络数据的发送和接收。
- 关闭 ServerSocket 和 Socket 对象:客户端访问结束,关闭通信套接字。
客户端的流程:
- 创建 Socket:根据指定服务端的 IP 地址(域名)和端口号构造 Socket 类对象。若服务器端响应,则建立客户端到服务器的通信线路。若连接失败,会出现异常。
- 打开连接到服务器的输入输出流: 使用 getInputStream() 方法获得输入流,使用 getOutputStream() 方法获得输出流,进行数据传输。
- 关闭 Socket:断开客户端到服务器的连接。
UDP 网络编程
UDP 网络编程步骤:
- 调用 DatagramSocket 和 DatagramPacket:创建一个 UDP 连接套接字、以及 UDP 数据报。
- 调用 UDP 套接字的 send 和 receive 方法:用于数据报的发送和接收。
- 关闭 socket。
URL URI URN 的区别:
URI(uniform resource identifier,统一资源标识符):用来唯一的标识一个资源。
URL(uniform resource locator,统一资源定位符):它是一种具体的 URI,即 URL 可以用来标识一个资源,而且还指明了如何定位这个资源。
URN(uniform resource name,统一资源命名):是通过名字来标识资源。
URI 是以一种抽象的,高层次概念定义统一资源标识,而 URL 和 URN 则是具体的资源标识的方式。URL 和 URN 都是一种 URI。