Java Socket 连接的实现步骤

为了实现 Java Socket 连接,我们可以按照以下步骤进行操作:

步骤 描述
1 创建一个 ServerSocket 对象,用于监听指定端口上的客户端请求
2 调用 ServerSocket 的 accept() 方法,等待客户端的连接请求
3 客户端使用 Socket 对象连接到指定的 IP 地址和端口号
4 服务器和客户端根据协议进行通信
5 关闭连接

下面我们将逐步介绍每个步骤需要做的事情,并提供相应的代码示例。

步骤 1:创建 ServerSocket 对象

在 Java 中,我们可以使用 Socket 类实现服务器和客户端之间的通信。首先,我们需要创建一个 ServerSocket 对象来监听客户端的连接请求。以下是代码示例:

import java.io.IOException;
import java.net.ServerSocket;

public class Server {
    public static void main(String[] args) {
        ServerSocket serverSocket = null;
        try {
            // 创建 ServerSocket 对象,绑定指定端口号
            serverSocket = new ServerSocket(8080);
            System.out.println("服务器已启动,等待客户端连接...");
            
            // 其他代码...
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (serverSocket != null) {
                try {
                    // 关闭 ServerSocket
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

在上面的代码中,我们创建了一个 ServerSocket 对象,并将其绑定到端口号 8080 上。这样服务器就可以开始监听客户端的连接请求了。

步骤 2:等待客户端连接

一旦创建了 ServerSocket 对象,我们需要调用其 accept() 方法来等待客户端的连接请求。以下是代码示例:

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) {
        ServerSocket serverSocket = null;
        try {
            // 创建 ServerSocket 对象,绑定指定端口号
            serverSocket = new ServerSocket(8080);
            System.out.println("服务器已启动,等待客户端连接...");
            
            // 等待客户端连接请求
            Socket clientSocket = serverSocket.accept();
            System.out.println("客户端已连接:" + clientSocket.getInetAddress().getHostAddress());
            
            // 其他代码...
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (serverSocket != null) {
                try {
                    // 关闭 ServerSocket
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

在上面的代码中,我们调用了 serverSocket.accept() 方法来等待客户端的连接请求。一旦有客户端连接成功,accept() 方法将返回一个 Socket 对象,我们可以通过该对象与客户端进行通信。

步骤 3:客户端连接

在客户端中,我们需要创建一个 Socket 对象,并指定服务器的 IP 地址和端口号来连接到服务器。以下是代码示例:

import java.io.IOException;
import java.net.Socket;

public class Client {
    public static void main(String[] args) {
        Socket socket = null;
        try {
            // 创建 Socket 对象,指定服务器的 IP 地址和端口号
            socket = new Socket("localhost", 8080);
            System.out.println("成功连接到服务器:" + socket.getInetAddress().getHostAddress());
            
            // 其他代码...
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (socket != null) {
                try {
                    // 关闭 Socket
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

在上面的代码中,我们创建了一个 Socket 对象并指定服务器的 IP 地址为 "localhost",端口号为 8080。这样客户端就可以与服务器建立连接了。

步骤 4:服务器和客户端通信

一旦客户端连接成功,服务器和客户端之间可以使用输入流和输出流进行通信。以下是基本的通信代码示例:

服务器端代码示例:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io