Java Socket 数据传输:快速指南266


Java Socket API 提供了一个强大的机制,用于在网络上建立和管理双向通信。Socket 允许程序在计算机之间安全可靠地交换数据。本文将介绍 Java 中 Socket 数据传输的基本原理,并提供一个分步指南来建立 Socket 连接和发送/接收数据。

建立 Socket 连接

要建立 Socket 连接,我们需要创建一个 ServerSocket(服务器端)和一个 Socket(客户端)。ServerSocket 监听来自客户端的连接请求,而 Socket 负责与服务器建立连接。以下是步骤:
// 服务器端
ServerSocket serverSocket = new ServerSocket(port);
Socket clientSocket = ();
// 客户端
Socket clientSocket = new Socket("localhost", port);

发送数据

一旦建立连接,我们可以使用 OutputStream 来向另一个端点发送数据。OutputStream 提供了各种方法,例如 write() 和 writeUTF(),用于发送字节数组或字符串。
OutputStream out = ();
(data);
();

接收数据

同样地,我们可以使用 InputStream 从另一个端点接收数据。InputStream 提供了 read() 和 readUTF() 等方法,用于读取字节数组或字符串。
InputStream in = ();
byte[] buffer = new byte[1024];
int bytesRead = (buffer);
String data = new String(buffer, 0, bytesRead);

关闭连接

在完成数据传输后,必须关闭 Socket 连接以释放资源。我们可以使用 close() 方法来关闭 Socket 和 ServerSocket。
();
();

示例:文件传输

以下是使用 Socket 进行文件传输的示例:
// 服务器端
ServerSocket serverSocket = new ServerSocket(port);
Socket clientSocket = ();
// 从客户端接收文件
InputStream in = ();
FileOutputStream out = new FileOutputStream("");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = (buffer)) != -1) {
(buffer, 0, bytesRead);
}
();
// 客户端
Socket clientSocket = new Socket("localhost", port);
// 向服务器发送文件
InputStream in = new FileInputStream("");
OutputStream out = ();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = (buffer)) != -1) {
(buffer, 0, bytesRead);
}
();


Java Socket API 提供了一种在网络上交换数据的强大且灵活的方法。通过遵循本文中概述的步骤,您可以轻松地建立 Socket 连接并发送/接收数据。这使得 Java Socket 成为开发网络应用程序(如聊天、文件传输和在线游戏)的首选选择。

2024-10-23


上一篇:Java 代码中文注释

下一篇:Java 计算字符串长度、子串和比较