Java Socket 编程是使用 Java 编程语言进行网络通信的一种方式。它基于 TCP/IP 协议栈,允许程序通过网络套接字进行数据传输。

Java 提供了 java.net 包,其中包含了一组类和接口,用于创建和管理网络套接字。以下是 Socket 编程的基本步骤:

  1. 创建服务器端套接字:使用 ServerSocket 类创建服务器端套接字。服务器端套接字等待客户端连接请求。

  2. 创建客户端套接字:使用 Socket 类创建客户端套接字。客户端套接字尝试连接服务器端套接字。

  3. 服务器端接受连接请求:服务器端套接字使用 accept() 方法接受客户端套接字的连接请求。

  4. 客户端发送请求:客户端套接字使用 OutputStream 发送请求给服务器端套接字。

  5. 服务器端处理请求:服务器端套接字使用 InputStream 接收并处理客户端请求。

  6. 服务器端发送响应:服务器端套接字使用 OutputStream 发送响应给客户端套接字。

  7. 客户端接收响应:客户端套接字使用 InputStream 接收服务器端的响应。

  8. 关闭套接字:在通信结束后,关闭客户端和服务器端套接字。

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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录