Java 网络编程详解:ServerSocket、Socket、InetAddress.
Java 网络编程详解:ServerSocket、Socket、InetAddress
本篇文章详细介绍 Java 中用于网络通信的三个重要类:ServerSocket、Socket、InetAddress,并为每个方法提供了中文解释和独立示例,作为学习笔记。
📘 ServerSocket 类
构造方法
1. public ServerSocket(int port)
创建绑定到特定端口的服务器套接字。
import java.net.*;
public class ServerExample1 {
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(8888);
System.out.println("服务器已启动,监听端口 8888...");
server.close();
}
}
2. public ServerSocket(int port, int backlog)
指定连接请求队列的长度 backlog。
ServerSocket server = new ServerSocket(8888, 50);
3. public ServerSocket(int port, int backlog, InetAddress address)
绑定到指定的 IP 和端口。
InetAddress addr = InetAddress.getByName("127.0.0.1");
ServerSocket server = new ServerSocket(8888, 50, addr);
4. public ServerSocket()
创建未绑定的套接字。
ServerSocket server = new ServerSocket();
server.bind(new InetSocketAddress(8888));
常用方法
1. getLocalPort()
返回此套接字在其上侦听的端口。
ServerSocket server = new ServerSocket(8888);
System.out.println(server.getLocalPort()); // 输出 8888
server.close();
2. accept()
接收一个客户端连接请求。
Socket client = server.accept();
3. setSoTimeout(int timeout)
设置 accept 的超时时间。
server.setSoTimeout(5000); // 设置超时 5 秒
4. bind(SocketAddress host, int backlog)
绑定到指定地址。
ServerSocket server = new ServerSocket();
server.bind(new InetSocketAddress("127.0.0.1", 9999), 100);
📘 Socket 类
构造方法
1. Socket(String host, int port)
Socket socket = new Socket("localhost", 8888);
2. Socket(InetAddress host, int port)
InetAddress address = InetAddress.getByName("localhost");
Socket socket = new Socket(address, 8888);
3. Socket(String host, int port, InetAddress localAddr, int localPort)
InetAddress localAddr = InetAddress.getLocalHost();
Socket socket = new Socket("localhost", 8888, localAddr, 6666);
4. Socket(InetAddress host, int port, InetAddress localAddr, int localPort)
InetAddress remote = InetAddress.getByName("localhost");
InetAddress local = InetAddress.getLocalHost();
Socket socket = new Socket(remote, 8888, local, 6666);
5. Socket()
创建未连接的 socket。
Socket socket = new Socket();
socket.connect(new InetSocketAddress("localhost", 8888), 3000);
常用方法
1. connect(SocketAddress host, int timeout)
Socket socket = new Socket();
socket.connect(new InetSocketAddress("localhost", 8888), 5000);
2. getInetAddress()
System.out.println(socket.getInetAddress());
3. getPort()
System.out.println(socket.getPort());
4. getLocalPort()
System.out.println(socket.getLocalPort());
5. getRemoteSocketAddress()
System.out.println(socket.getRemoteSocketAddress());
6. getInputStream() / getOutputStream()
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
7. close()
socket.close();
📘 InetAddress 类
常用方法
1. getByAddress(byte[] addr)
InetAddress addr = InetAddress.getByAddress(new byte[]{127,0,0,1});
System.out.println(addr);
2. getByAddress(String host, byte[] addr)
InetAddress addr = InetAddress.getByAddress("localhost", new byte[]{127,0,0,1});
System.out.println(addr);
3. getByName(String host)
InetAddress address = InetAddress.getByName("www.baidu.com");
System.out.println(address);
4. getHostAddress()
InetAddress address = InetAddress.getByName("localhost");
System.out.println(address.getHostAddress()); // 输出 127.0.0.1
5. getHostName()
System.out.println(address.getHostName());
6. getLocalHost()
InetAddress local = InetAddress.getLocalHost();
System.out.println(local);
7. toString()
System.out.println(address.toString());
✅ 本文每个方法尽可能提供了独立、最小可运行的 Java 示例,便于学习和博客整理。

浙公网安备 33010602011771号