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

java socket io server

作者:昔日暖阳   发布日期:2025-04-08   浏览:29

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

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

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

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

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

                // 读取客户端发送的数据
                String inputLine;
                while ((inputLine = in.readLine()) != null) {
                    System.out.println("收到客户端消息: " + inputLine);

                    // 回应客户端
                    out.println("服务器已收到你的消息: " + inputLine);

                    // 如果客户端发送"bye"则断开连接
                    if (inputLine.equalsIgnoreCase("bye")) {
                        break;
                    }
                }

                // 关闭资源
                in.close();
                out.close();
                clientSocket.close();
                System.out.println("客户端已断开连接");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

解释说明:

  1. ServerSocket:用于创建一个服务器套接字,监听指定端口(如12345)上的客户端连接请求。
  2. accept():阻塞方法,等待客户端连接。一旦有客户端连接,返回一个新的 Socket 对象表示该连接。
  3. BufferedReader 和 PrintWriter:分别用于从客户端读取数据和向客户端发送数据。
  4. in.readLine():从客户端读取一行文本数据。
  5. out.println():向客户端发送一行文本数据。
  6. bye 断开连接:当客户端发送 "bye" 时,服务器会断开与该客户端的连接。
  7. 关闭资源:确保在处理完每个客户端连接后,关闭所有打开的流和套接字,以释放资源。

这个示例代码实现了一个简单的 Java Socket IO 服务器,可以接收客户端的连接并进行简单的消息交互。

上一篇:java countdownlatch用法

下一篇:java加密

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

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

Laravel 中文站