Java Socket 网络编程:简单示例及代码详解
Java Socket 网络编程:简单示例及代码详解
本文提供了一个简单的 Java Socket 网络编程示例,包括服务器端和客户端代码,详细解释了如何使用 Socket 进行网络通信,并展示了基本的操作流程。
服务器端代码
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
// 创建 ServerSocket 实例,监听 8888 端口
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println('服务器已启动,等待客户端连接...');
// 等待客户端连接
Socket socket = serverSocket.accept();
System.out.println('客户端已连接,客户端地址:' + socket.getInetAddress() + ',客户端端口号:' + socket.getPort());
// 获取输入流和输出流
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
// 读取客户端发送的数据
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String message = reader.readLine();
System.out.println('客户端发送的消息:' + message);
// 向客户端发送数据
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));
String response = '服务器已收到您的消息:' + message;
writer.write(response);
writer.newLine();
writer.flush();
System.out.println('向客户端发送的消息:' + response);
// 关闭输入流、输出流和 Socket 连接
reader.close();
writer.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端代码
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建 Socket 实例,连接服务器的 8888 端口
Socket socket = new Socket('localhost', 8888);
System.out.println('已连接到服务器,服务器地址:' + socket.getInetAddress() + ',服务器端口号:' + socket.getPort());
// 获取输入流和输出流
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
// 向服务器发送数据
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));
String message = 'Hello, Server!';
writer.write(message);
writer.newLine();
writer.flush();
System.out.println('向服务器发送的消息:' + message);
// 读取服务器发送的数据
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String response = reader.readLine();
System.out.println('服务器发送的消息:' + response);
// 关闭输入流、输出流和 Socket 连接
reader.close();
writer.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出结果
服务器已启动,等待客户端连接...
已连接到服务器,服务器地址:/127.0.0.1,服务器端口号:8888
客户端已连接,客户端地址:/127.0.0.1,客户端端口号:59152
客户端发送的消息:Hello, Server!
向客户端发送的消息:服务器已收到您的消息:Hello, Server!
代码说明:
- 服务器端使用
ServerSocket监听指定端口,等待客户端连接。 - 客户端使用
Socket连接服务器的指定端口。 - 服务器和客户端通过
InputStream和OutputStream进行数据交互。 - 代码中使用了
BufferedReader和BufferedWriter来简化输入输出操作。
注意:
- 运行代码前需要确保服务器和客户端在同一网络环境下,并且服务器已经启动监听。
- 可以修改代码中的
message和response来测试不同的通信内容。
希望本文能够帮助您理解 Java Socket 网络编程的基本概念,并能够帮助您编写自己的网络应用程序。
原文地址: https://www.cveoy.top/t/topic/oX8t 著作权归作者所有。请勿转载和采集!