温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java Socket如何实现客户端与服务端通信

发布时间:2025-08-17 20:07:34 来源:亿速云 阅读:100 作者:小樊 栏目:编程语言

在Java中,使用Socket和ServerSocket类可以实现客户端与服务器之间的通信。以下是一个简单的示例,展示了如何使用Socket和ServerSocket实现客户端和服务端的通信。

  1. 首先,创建一个服务器端程序:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) {
        int port = 12345; // 服务器监听的端口

        try (ServerSocket serverSocket = new ServerSocket(port)) {
            System.out.println("服务器已启动,等待客户端连接...");

            while (true) {
                Socket socket = serverSocket.accept(); // 接受客户端连接
                System.out.println("客户端已连接");

                BufferedReader inputReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                PrintWriter outputWriter = new PrintWriter(socket.getOutputStream(), true);

                String message;
                while ((message = inputReader.readLine()) != null) {
                    System.out.println("收到客户端消息: " + message);
                    outputWriter.println("服务器回复: " + message);
                }

                socket.close();
                System.out.println("客户端断开连接");
            }
        } catch (IOException e) {
            System.out.println("服务器异常: " + e.getMessage());
        }
    }
}
  1. 然后,创建一个客户端程序:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {
    public static void main(String[] args) {
        String host = "localhost"; // 服务器地址
        int port = 12345; // 服务器监听的端口

        try (Socket socket = new Socket(host, port)) {
            System.out.println("已连接到服务器");

            BufferedReader inputReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter outputWriter = new PrintWriter(socket.getOutputStream(), true);

            BufferedReader keyboardReader = new BufferedReader(new InputStreamReader(System.in));
            String message;

            while ((message = keyboardReader.readLine()) != null) {
                outputWriter.println(message); // 向服务器发送消息
                System.out.println("服务器回复: " + inputReader.readLine());
            }

        } catch (IOException e) {
            System.out.println("客户端异常: " + e.getMessage());
        }
    }
}
  1. 首先运行服务器端程序,然后运行客户端程序。客户端可以输入消息并发送到服务器,服务器接收到消息后会回复客户端。

这个示例展示了如何使用Socket和ServerSocket实现基本的客户端和服务端通信。在实际应用中,可以根据需要扩展功能,例如多线程处理多个客户端连接、使用更高级的协议等。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手