java程序设计开发,Java高级API-Socket学习笔记,Socket(套接字)是 Java 实现网络通信的核心 API,用于在不同设备的应用程序之间进行数据传输。
Java 高级 API - Socket 学习笔记
一、Socket 编程概述
定义:
Socket(套接字)是 Java 实现网络通信的核心 API,用于在不同设备的应用程序之间进行数据传输。它封装了网络连接的细节,支持 TCP(面向连接、可靠)和 UDP(无连接、不可靠)两种传输协议。
核心作用:
- 实现客户端与服务器的双向通信
- 支持不同主机或同一主机上的进程间通信(IPC)
- 是构建网络应用(如 Web 服务器、即时通讯、文件传输)的基础
二、核心类与协议
协议 | 核心类(客户端) | 核心类(服务器端) | 特点 | 典型应用场景 |
---|---|---|---|---|
TCP | Socket |
ServerSocket |
可靠、面向连接、流式传输 | 网页浏览、文件传输、数据库连接 |
UDP | DatagramSocket |
DatagramSocket |
不可靠、无连接、数据报传输 | 视频通话、DNS 查询、实时监控 |
三、TCP 编程:可靠连接通信
核心原理
- 基于 TCP 协议,通过 “三次握手” 建立连接,数据以字节流形式传输
- 服务器需先绑定端口,监听连接;客户端主动发起连接
- 适用于对数据完整性要求高的场景(如用户登录、文件传输)
案例 1:TCP Echo 服务器(客户端发送消息,服务器回显)
服务器端代码(TCPServer.java
)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(8080)) { // 绑定端口
System.out.println("服务器启动,监听端口8080...");
while (true) {
Socket clientSocket = serverSocket.accept(); // 阻塞等待客户端连接
new Thread(() -> handleClient(clientSocket)).start(); // 多线程处理每个客户端
}
} catch (IOException e) {
e.printStackTrace();
}