Node.js与Java通过Socket进行通信的实现方案

作者:后端茶话时间:2026-10-30 19:46:43浏览:538

本文介绍如何使用Node.js作为服务端、Java作为客户端,通过Socket建立连接并实现数据交互。文章包含Node.js服务端读取本地文件返回数据、客户端接收消息的代码示例,以及Java客户端发送请求并接收响应的完整实现。

背景

当前面临一个实际需求:需要利用Node.js搭建服务器端,接收来自Spring Boot应用发送的数据,进行相应处理后将结果返回。为此,考虑采用Socket连接方式实现通信,以下通过一个简易示例演示具体思路。

实施步骤

此处省略冗长说明,直接展示核心代码实现。

首先,构建Node.js环境下的客户端与服务端连接模型。

Node.js服务端代码

const net = require('net');
const fs = require('fs')
const server = net.createServer(function (connection) {
    console.log('客户端连接成功');
    connection.on('end', function () {
        console.log('客户端关闭连接');
    });
    connection.on('data', function (data) {
        console.log(data.toString());
    });
    const content = fs.readFileSync('./111.txt') // 读取到文件,进行返回
    connection.write('服务器:'+content.toString());
    // connection.pipe(connection); // 用来返回收到的消息,也就是服务端在这里收到的消息原文,再返回给客户端
});
server.listen(3000, function () {
    console.log('服务器监听');
});

Node.js客户端代码

const net = require('net');
const client = net.connect({ port: 3000 }, function () {
    console.log('连接到服务器!');
});
client.on('data', function (data) {
    console.log(data.toString());
    client.write("我已收到数据")
    client.end();
});
client.on('end', function () {
    console.log('断开与服务器的连接');
});

在此服务端逻辑中,程序会读取本地指定文件内容,并将读取到的数据返回给客户端;客户端在接收到消息后,会回复一条确认信息表示已收到。

在确认Node.js内部通信成功后,接下来演示如何使用Java作为客户端,向Node.js服务端发起Socket连接并发送消息。

Java客户端代码

@Test
public void socket(){
    Socket socket = null;
    String Code_Adress = "127.0.0.1";
    try {
        socket = new Socket(Code_Adress,3000);
        OutputStream outputStream = socket.getOutputStream();
        InputStream inputStream = socket.getInputStream();
        byte[] bytes = new byte[1024];
        outputStream.write("我是JAVA客户端".getBytes());
        int len = inputStream.read(bytes);
        String str = new String(bytes,0,len);
        System.out.println(str);
        socket.close();
    } catch (IOException e) {
        e.printStackTrace();
    } 
}

运行效果展示:

背景

总结

以上为个人实践经验总结,旨在提供参考,欢迎支持本站。

作者最新文章