Java中Socket是网络通信的一个重要概念,它提供了在不同计算机或设备之间,进行数据交换的方式。Java 中,Socket 编程主要涉及两个类:Socket
和 ServerSocket
。
- Socket:用于客户端,连接到服务器的一个特定端口,通过这个连接发送和接收数据。
- ServerSocket:用于服务器端,监听特定端口,等待客户端连接请求,每个连接创建一个新的
Socket
。
Socket 编程步骤:
- 创建 Socket:客户端通过指定服务器IP地址和端口号,创建
Socket
实例。 - 连接到服务器:客户端
Socket
连接到服务器上指定端口。 - 数据传输:连接成功,客户端和服务器通过输入/输出流(
InputStream
和OutputStream
)进行数据传输。 - 关闭连接:数据传输完成后,关闭
Socket
连接释放资源。
服务端:
public class SimpleServer {
public static void main(String[] args) {
int port = 12345; // 服务器监听端口号
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("服务器已启动,等待客户端连接...");
// 接受客户端连接
Socket clientSocket = serverSocket.accept();
System.out.println("客户端已连接");
// 获取输入和输出流
InputStream input = clientSocket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
OutputStream output = clientSocket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
// 读取客户端数据
String message = reader.readLine();
System.out.println("收到客户端消息: " + message);
// 发送响应给客户端
writer.println("服务器已收到你的消息: " + message);
// 关闭连接
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}