Java 网络编程
网络编程允许计算机之间通过网络进行通信。Java 提供了强大的 java.net 包,使开发者能够轻松地创建网络应用程序,无论是基于 TCP 还是 UDP 协议。
网络基础
- IP 地址 (IP Address): 网络上每台计算机的唯一标识符。Java 使用
InetAddress类来表示 IP 地址。 - 端口 (Port): 一个 16 位的数字(0-65535),用于标识计算机上特定的应用程序或服务。一个 IP 地址和一个端口号组合起来,就能唯一确定网络上的一个进程。
- 套接字 (Socket): 是网络通信的端点。两个应用程序通过一对套接字(包含 IP 地址和端口)建立连接,进行数据交换。
InetAddress 类
InetAddress 类用于表示 IP 地址,它没有公共构造方法,只能通过静态方法创建实例。
TCP 编程
TCP (Transmission Control Protocol) 是一种面向连接、可靠的协议。通信双方需要先建立连接,然后才能进行数据传输,类似于打电话。
ServerSocket: 用于服务器端,监听指定的端口,等待客户端的连接请求。Socket: 用于客户端或服务器端,代表一个网络连接的两端之一。
TCP 服务器端示例
TCP 客户端示例
UDP 编程
UDP (User Datagram Protocol) 是一种无连接、不可靠的协议。它不需要建立连接,直接将数据包(Datagram)发送到目标地址,速度快但可能丢包,类似于寄信。
DatagramSocket: 用于发送和接收数据报包。DatagramPacket: 用于封装要发送或接收的数据。
UDP 发送端示例
UDP 接收端示例
URL 编程
Java 还提供了高级 API 来处理 URL,方便地访问 Web 资源。
URL: 代表一个统一资源定位符。URLConnection: 可用于读取和写入 URL 指向的资源。