本文介绍如何使用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();
}
}运行效果展示:

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