關(guān)于NodeJs和JAVA建立socket連接方式
起因
我現(xiàn)在有了需求,使用js作為服務(wù)器端,接收我springboot發(fā)送來的數(shù)據(jù),進(jìn)行處理,并且返回處理后的內(nèi)容返回,這里就想到到了進(jìn)行socket連接,以下我對(duì)我的思路進(jìn)行了一個(gè)小demo
過程
先不多說了,直接上代碼
這里我先建立的是nodejs之間客戶端與服務(wù)端的連接
nodejs server
const net = require('net'); const fs = require('fs') const server = net.createServer(function (connection) { console.log('客戶端連接成功'); connection.on('end', function () { console.log('客戶端關(guān)閉連接'); }); connection.on('data', function (data) { console.log(data.toString()); }); const content = fs.readFileSync('./111.txt') // 讀取到文件,進(jìn)行返回 connection.write('服務(wù)器:'+content.toString()); // connection.pipe(connection); // 用來返回收到的消息,也就是服務(wù)端在這里收到的消息原文,再返回給客戶端 }); server.listen(3000, function () { console.log('服務(wù)器監(jiān)聽'); });
nodejs client
const net = require('net'); const client = net.connect({ port: 3000 }, function () { console.log('連接到服務(wù)器!'); }); client.on('data', function (data) { console.log(data.toString()); client.write("我已收到數(shù)據(jù)") client.end(); }); client.on('end', function () { console.log('斷開與服務(wù)器的連接'); });
這里我服務(wù)端是對(duì)本地文件進(jìn)行了讀取,讀取到內(nèi)容進(jìn)行返回,客戶端接收到消息,會(huì)回復(fù)一句,我已收到消息
當(dāng)我們nodejs之間成功建立連接后,我們開始使用Java作為客戶端向node服務(wù)端進(jìn)行socket連接發(fā)送消息
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(); } }
效果圖:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解基于node的前端項(xiàng)目編譯時(shí)內(nèi)存溢出問題
本篇文章主要介紹了基于node的前端項(xiàng)目編譯時(shí)內(nèi)存溢出問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08用nodeJS搭建本地文件服務(wù)器的幾種方法小結(jié)
本篇文章主要介紹了用nodeJS搭建本地文件服務(wù)器的幾種方法小結(jié),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03詳解node如何讓一個(gè)端口同時(shí)支持https與http
眾所周知node是一個(gè)高性能的web服務(wù)器,使用它可以很簡單的創(chuàng)建一個(gè)http或https的服務(wù)器。這篇文章主要介紹了詳解node如何讓一個(gè)端口同時(shí)支持https與http2017-07-07實(shí)例分析nodejs模塊xml2js解析xml過程中遇到的坑
這篇文章主要介紹了實(shí)例分析nodejs模塊xml2js解析xml過程中遇到的坑,涉及nodejs模塊xml2js解析xml過程中parseString方法參數(shù)使用技巧,需要的朋友可以參考下2017-03-03