Java Socket 编程详解:网络通信的利器
Java Socket 编程是使用 Java 编程语言进行网络通信的一种方式。它基于 TCP/IP 协议栈,允许程序通过网络套接字进行数据传输。
Java 提供了 java.net 包,其中包含了一组类和接口,用于创建和管理网络套接字。以下是 Socket 编程的基本步骤:
-
创建服务器端套接字:使用 ServerSocket 类创建服务器端套接字。服务器端套接字等待客户端连接请求。
-
创建客户端套接字:使用 Socket 类创建客户端套接字。客户端套接字尝试连接服务器端套接字。
-
服务器端接受连接请求:服务器端套接字使用 accept() 方法接受客户端套接字的连接请求。
-
客户端发送请求:客户端套接字使用 OutputStream 发送请求给服务器端套接字。
-
服务器端处理请求:服务器端套接字使用 InputStream 接收并处理客户端请求。
-
服务器端发送响应:服务器端套接字使用 OutputStream 发送响应给客户端套接字。
-
客户端接收响应:客户端套接字使用 InputStream 接收服务器端的响应。
-
关闭套接字:在通信结束后,关闭客户端和服务器端套接字。
Java Socket 编程还提供了一些其他功能,如多线程处理多个客户端连接、使用 UDP 协议进行数据传输等。
以下是一个简单的示例代码,演示了 Java Socket 编程的基本步骤:
// 服务器端代码
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(12345);
System.out.println('服务器已启动,等待客户端连接...');
Socket clientSocket = serverSocket.accept();
System.out.println('客户端已连接:' + clientSocket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String request = in.readLine();
System.out.println('客户端请求:' + request);
String response = 'Hello, Client!';
out.println(response);
System.out.println('服务器响应:' + response);
in.close();
out.close();
clientSocket.close();
serverSocket.close();
}
}
// 客户端代码
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket clientSocket = new Socket('localhost', 12345);
System.out.println('已连接服务器:' + clientSocket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String request = 'Hello, Server!';
out.println(request);
System.out.println('发送请求:' + request);
String response = in.readLine();
System.out.println('服务器响应:' + response);
in.close();
out.close();
clientSocket.close();
}
}
这是一个简单的客户端-服务器端通信的例子。服务器端监听端口 12345,客户端连接服务器并发送请求,服务器接收请求并发送响应给客户端。
原文地址: https://www.cveoy.top/t/topic/pilU 著作权归作者所有。请勿转载和采集!