Java Socket 测试链接 Demo
在网络编程中,Socket 是一种通信协议,它允许应用程序在网络中进行双向通信。在 Java 中,我们可以使用 java.net
包中的类来实现 Socket 通信。本文将通过一个简单的示例,展示如何使用 Java Socket 进行测试链接。
1. 基本概念
在 Java 中,Socket 通信主要分为两个部分:服务器端(Server)和客户端(Client)。服务器端负责监听客户端的连接请求,而客户端则负责发起连接请求。一旦连接建立,双方就可以进行数据传输。
2. 服务器端实现
首先,我们来实现服务器端。服务器端的主要任务是监听客户端的连接请求,并接收客户端发送的数据。
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
int port = 12345; // 服务器监听的端口号
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("服务器启动,监听端口:" + port);
while (true) {
Socket clientSocket = serverSocket.accept();
System.out.println("客户端连接成功:" + clientSocket.getInetAddress().getHostAddress());
try (InputStream input = clientSocket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println("收到客户端消息:" + line);
}
} finally {
clientSocket.close();
}
}
} catch (IOException e) {
System.out.println("服务器异常:" + e.getMessage());
}
}
}
3. 客户端实现
接下来,我们实现客户端。客户端的主要任务是连接服务器,并发送数据。
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
String host = "127.0.0.1"; // 服务器的 IP 地址
int port = 12345; // 服务器监听的端口号
try (Socket socket = new Socket(host, port);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
System.out.println("客户端启动,连接服务器:" + host + ":" + port);
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("收到服务器消息:" + inputLine);
}
out.println("Hello Server!");
} catch (UnknownHostException e) {
System.out.println("无法解析主机名:" + e.getMessage());
} catch (IOException e) {
System.out.println("I/O 异常:" + e.getMessage());
}
}
}
4. 运行示例
首先,运行服务器端程序。然后,运行客户端程序。客户端将连接到服务器,并发送一条消息。服务器将接收到这条消息,并打印出来。
5. 关系图
以下是服务器端和客户端之间的关系图:
erDiagram
SERVER ||--o| CLIENT : "连接"
CLIENT {
int port
String host
}
SERVER {
int port
}
6. 结论
通过本文的示例,我们可以看到 Java Socket 通信的基本实现方式。服务器端负责监听端口,接收客户端的连接请求;客户端则负责连接服务器,并发送数据。这种通信方式在网络编程中非常常见,可以用于实现各种网络应用。希望本文能够帮助读者更好地理解 Java Socket 通信的基本原理和实现方式。