记录一个最简单的nodejs两个端口相互转发的案例,只局限于1对1
记录一个最简单的nodejs两个端口相互转发的案例,只局限于1对1,后期如果有需要可以做成多个端口转发,有需要可以做成聊天室
const net = require('net'); var data01; var data02; net.createServer().on('connection',(data)=>{ console.log("client 01 connected"); data01 = data; try{data.on('data',(chunk)=>{data02.write(chunk);});}catch(e){} data.on('close',(p1)=>{data01=null;console.log("client 01 closed");}); data.on('error',(p1)=>{data01=null;console.log("client 01 error");}); }).listen(5678); net.createServer().on('connection',(data)=>{ console.log("client 02 connected"); data02 = data; try{data.on('data',(chunk)=>{data01.write(chunk);});}catch(e){} data.on('close',(p1)=>{data02=null;console.log("client 02 closed");}); data.on('error',(p1)=>{data02=null;console.log("client 02 error");}); }).listen(5679)
参考链接 https://www.cnblogs.com/lguow/p/11718359.html
其他一些废代码也贴下来,仅供参考
/* const express = require('express'); const http = require('http'); const app8000 = express(); const app9000 = express(); const server8000 = http.Server(app8000); const server9000 = http.Server(app9000); const io8000 = require('socket.io')(server8000); const io9000 = require('socket.io')(server9000); server8000.listen(5678); server9000.listen(5679); //端口8000上的服务器 io8000.on('connection',socket => { socket.on('my-event',data => { //将数据推送到端口9000上连接到服务器的客户端 console.log("io1"); io9000.emit(" event-from-8000"," From 8000:" + data); }); }); //端口9000上的服务器 io9000.on('connection',socket => { socket.on('my-event',data => { console.log("io2"); //将数据推送到端口8000上连接到服务器的客户端 io8000.emit(" event-from-9000"," From 9000:" + data); }); }); */ /* var http1 = require('http'); var http2 = require('http'); var fs = require('fs'); var url = require('url'); // 创建服务器 http1.createServer( function (request, response) { response.write(data.toString()); response.end(); }); }).listen(8080); // 控制台会输出以下信息 console.log('Server running at http://127.0.0.1:8080/'); */ /* //这个是客户端 var WebSocket = require('ws'); const ws1 = new WebSocket('ws://121.36.38.208:5678'); const ws2 = new WebSocket('ws://121.36.38.208:5679'); ws1.onmessage = (msg)=>{ws2.send(msg)}; ws2.onmessage = (msg)=>{ws1.send(msg)}; //服务端 var ws = require("nodejs-websocket"); var server = ws.createServer(function (conn) { console.log("New connection") conn.on("text", function (str) { console.log("Received "+str) conn.sendText(str.toUpperCase()+"!!!") }) conn.on("close", function (code, reason) { console.log("Connection closed") }) conn.on("error",function(err){ console.log('handler error') console.log(err) }) }).listen(8080) */ /* const net = require('net'); const server01 = net.createServer(); var data01; var data02; server01.on('connection',(data)=>{ console.log("client 01"); data01 = data; try{ data.on('data',(chunk)=>{ data02.write(chunk); }); }catch(e){} }) server01.listen(5678); const server02 = net.createServer(); server02.on('connection',(data)=>{ console.log("client 01"); data02 = data; //data.setEncoding('utf8'); // 客户socket进程绑定事件 try{ data.on('data',(chunk)=>{ data01.write(chunk); }); }catch(e){} }) server02.listen(5679); */ //综合比较这个最简单 需要模块 npm install net const net = require('net'); var data01; var data02; net.createServer().on('connection',(data)=>{ console.log("client 01 connected"); data01 = data; try{data.on('data',(chunk)=>{data02.write(chunk);});}catch(e){} }).listen(5678); net.createServer().on('connection',(data)=>{ console.log("client 02 connected"); data02 = data; try{data.on('data',(chunk)=>{data01.write(chunk);});}catch(e){} }).listen(5679)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构