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

java socket框架

作者:戮尽逆者   发布日期:2026-07-05   浏览:38

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) {
                    if ("bye".equals(inputLine)) {
                        out.println("Goodbye!");
                        break;
                    }
                    System.out.println("收到客户端消息: " + inputLine);
                    out.println("Echo: " + inputLine);
                }

                // 关闭连接
                System.out.println("关闭客户端连接");
                in.close();
                out.close();
                clientSocket.close();
            }
        } finally {
            // 关闭服务器套接字
            serverSocket.close();
        }
    }
}

解释说明:

  1. 创建服务器套接字ServerSocket serverSocket = new ServerSocket(8080); 这行代码创建了一个服务器套接字,并让它在端口 8080 上监听客户端连接。
  2. 等待客户端连接Socket clientSocket = serverSocket.accept(); 这行代码会阻塞,直到有一个客户端连接到服务器。一旦有客户端连接,它会返回一个 Socket 对象来表示这个连接。
  3. 获取输入输出流:通过 clientSocket.getInputStream()clientSocket.getOutputStream() 分别获取客户端的输入和输出流。
  4. 读取并回显数据:使用 BufferedReader 读取客户端发送的数据,并通过 PrintWriter 将数据回显给客户端。
  5. 关闭连接:当客户端发送 "bye" 时,服务器会发送 "Goodbye!" 并关闭连接。

这段代码实现了一个简单的回显服务器(Echo Server),它会将客户端发送的消息原样返回给客户端。

上一篇: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 中文站