Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java socket

作者:△冷色彩   发布日期:2026-07-14   浏览:47

// Java Socket 示例代码

import java.io.*;
import java.net.*;

public class EchoServer {
    public static void main(String[] args) throws IOException {
        // 创建一个服务器套接字,监听端口 8080
        ServerSocket serverSocket = new ServerSocket(8080);
        System.out.println("服务器已启动,等待客户端连接...");

        try {
            while (true) {
                // 等待客户端连接
                Socket clientSocket = serverSocket.accept();
                System.out.println("客户端已连接");

                // 获取输入输出流
                PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
                BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

                String inputLine;
                // 读取客户端发送的消息并回显
                while ((inputLine = in.readLine()) != null) {
                    System.out.println("收到消息: " + inputLine);
                    out.println(inputLine);
                    if (inputLine.equals("bye")) {
                        break;
                    }
                }

                // 关闭连接
                System.out.println("关闭连接");
                out.close();
                in.close();
                clientSocket.close();
            }
        } finally {
            serverSocket.close();
        }
    }
}

public class EchoClient {
    public static void main(String[] args) throws IOException {
        // 创建一个客户端套接字,连接到本地的 8080 端口
        Socket socket = new Socket("localhost", 8080);
        System.out.println("已连接到服务器");

        try {
            // 获取输入输出流
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

            String userInput;
            // 发送消息给服务器并接收回显
            while ((userInput = stdIn.readLine()) != null) {
                out.println(userInput);
                System.out.println("服务器回显: " + in.readLine());
                if (userInput.equals("bye")) {
                    break;
                }
            }
        } finally {
            socket.close();
        }
    }
}

解释说明:

  1. EchoServer 类:

    • 创建了一个 ServerSocket 监听 8080 端口。
    • 使用 accept() 方法等待客户端连接。
    • 接收到连接后,通过 BufferedReaderPrintWriter 读取和发送数据。
    • 每当收到客户端的消息时,将其回显给客户端。如果收到 "bye" 消息,则关闭连接。
  2. EchoClient 类:

    • 创建了一个 Socket 连接到本地的 8080 端口。
    • 使用 BufferedReaderPrintWriter 与服务器进行通信。
    • 用户输入消息后,客户端将消息发送给服务器,并接收服务器的回显。如果用户输入 "bye",则结束会话并关闭连接。

这两个类展示了如何使用 Java 的 SocketServerSocket 实现简单的客户端-服务器通信。

上一篇:java内部类

下一篇:java 注解

大家都在看

java url decode

java判断是windows还是linux

java原始数据类型

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java常用的设计模式有哪些

java list 查找

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站