✅ Java 网络编程基础:端口(Port)详解
在计算机网络中,端口(Port)是用于区分不同网络服务的数字标识,它与 IP 地址共同组成网络通信的“地址”。
1️⃣ 什么是端口?
- IP 地址标识一台主机
- 端口号标识该主机上的某个应用程序(网络服务)
👉 通信时数据发送的目标为:IP 地址 + 端口号
2️⃣ 端口号的范围
范围 |
说明 |
0 ~ 1023 |
系统端口,保留给操作系统使用,如 HTTP(80)、FTP(21)等 |
1024 ~ 49151 |
注册端口,用于用户进程或服务(如 MySQL:3306) |
49152 ~ 65535 |
动态端口 / 私有端口,临时分配的端口 |
3️⃣ 常见端口号
服务/协议 |
默认端口号 |
HTTP |
80 |
HTTPS |
443 |
FTP |
21 |
SSH |
22 |
Telnet |
23 |
MySQL |
3306 |
Oracle |
1521 |
Redis |
6379 |
4️⃣ Java 中的端口使用场景
使用方式 |
示例类 |
创建服务器并绑定端口 |
ServerSocket(int port) |
客户端连接服务器的端口 |
Socket(String host, int port) |
使用 DatagramSocket 绑定端口 |
DatagramSocket(int port) |
5️⃣ 示例一:开启服务端监听端口
1 2 3 4 5 6 7 8
| import java.net.ServerSocket;
public class ServerExample { public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(8080); System.out.println("服务端已启动,正在监听端口 8080..."); } }
|
📌 说明:创建一个服务端,监听 8080 端口,用于等待客户端连接。
6️⃣ 示例二:客户端连接指定端口的服务端
1 2 3 4 5 6 7 8
| import java.net.Socket;
public class ClientExample { public static void main(String[] args) throws Exception { Socket client = new Socket("localhost", 8080); System.out.println("已连接服务器:localhost:8080"); } }
|
📌 说明:客户端主动连接服务端的 8080 端口,实现通信连接。
✅ 总结
概念 |
说明 |
端口号 |
标识一台主机中的一个网络应用 |
范围 |
0 ~ 65535,共 65536 个端口 |
常见端口 |
HTTP 80,HTTPS 443,MySQL 3306 等 |
Java 应用场景 |
ServerSocket , Socket , DatagramSocket 等绑定使用 |