fix: 修复demo0.1显示客户端错误地址。

This commit is contained in:
alwxkxk 2021-08-10 20:34:52 +08:00
parent 064f0ef5c6
commit d557d0aef6
3 changed files with 17 additions and 28 deletions

View File

@ -49,8 +49,8 @@
## V2.0 升级内容 ## V2.0 升级内容
根据过去几年来解决各位同学的问题后为提升学习体验于2021/7/17着手开始迭代升级为V2.0 根据过去几年来解决各位同学的问题后为提升学习体验于2021/7/17着手开始迭代升级为V2.0
- demo1 也使用HTTP轮询。 - demo1 也使用HTTP轮询。
- 不再使用pug模板减少不必要的学习内容。 - 不再使用Jquery、pug模板减少不必要的学习内容。
- TCP服务器连接超时时间从10秒改成60秒避免时间过短导致调试不方便。 - TCP服务器连接超时时间从10秒改成30秒避免时间过短导致调试不方便。
- 把原本引用CDN的外部资源全部下载放到内部引用。 - 把原本引用CDN的外部资源全部下载放到内部引用。
- 将教程从多条并行选择学习改变成有顺序地学习,避免读者迷惑不知所措。 - 将教程从多条并行选择学习改变成有顺序地学习,避免读者迷惑不知所措。
- 以前的演示都是无声的小视频,准备录制完整的有声视频。 - 以前的演示都是无声的小视频,准备录制完整的有声视频。

View File

@ -1,13 +1,13 @@
const fs = require('fs'); var fs = require('fs');
let http = require('http'); var http = require('http');
const net = require('net'); var net = require('net');
const HTTP_PORT = "8000"; var HTTP_PORT = "8000";
const TCP_PORT = "9000" var TCP_PORT = "9000"
const TIMEOUT = 60000;//tcp客户端超过60秒没发数据判为超时并断开连接 var TIMEOUT = 30*1000;//tcp客户端超过30秒没发数据判为超时并断开连接
let tcpClient=null;//tcp客户端 var tcpClient=null;//tcp客户端
// 创建http server并传入回调函数: // 创建http server并传入回调函数:
const httpServer = http.createServer(function (request, response) { var httpServer = http.createServer(function (request, response) {
// 回调函数接收request和response对象, // 回调函数接收request和response对象,
// 获得HTTP请求的method和url: // 获得HTTP请求的method和url:
console.log(request.method + ': ' + request.url); console.log(request.method + ': ' + request.url);
@ -29,15 +29,15 @@ const httpServer = http.createServer(function (request, response) {
break; break;
case "/data": case "/data":
// 获取数据 // 获取数据
let data = getData() || "无数据"; var data = getData() || "无数据";
let addr = "无连接"; var addr = "无连接";
if(tcpClient && tcpClient.addr){ if(tcpClient && tcpClient.addr){
addr = tcpClient.addr addr = tcpClient.addr
} }
// 将结果转换成字符串再发出去 // 将结果转换成字符串再发出去
let result = JSON.stringify({addr:addr,data:data}); var result = JSON.stringify({addr:addr,data:data});
response.end(result); response.end(result);
break; break;
default: default:
@ -52,16 +52,16 @@ httpServer.on('error', onError);
httpServer.on('listening', onListening); httpServer.on('listening', onListening);
//创建TCP服务器 //创建TCP服务器
const tcpServer = net.createServer((socket)=>{ var tcpServer = net.createServer((socket)=>{
//connect //connect
let addr = socket.address().address + ':' + socket.address().port var addr = socket.remoteAddress + ':' + socket.remotePort
console.log(addr," connect.") console.log(addr," connect.",socket)
socket.addr = addr socket.addr = addr
tcpClient = socket tcpClient = socket
// recieve data // recieve data
socket.on("data",data=>{ socket.on("data",data=>{
let str = addr+" --> " + data.toString('ascii') + '\n' var str = addr+" --> " + data.toString('ascii') + '\n'
console.log(str) console.log(str)
socket.lastValue = data.toString('ascii') socket.lastValue = data.toString('ascii')
}) })

View File

@ -1,14 +1,3 @@
/**
* 文件base/tcp1/tcp1.js
* 作者alwxkxk
* 修改时间2018/10/07
* 描述
* 只是单纯地开启TCP服务器 9001端口
* 建立连接时返回`${client addr} connected.\n`
* 接收数据返回`${client addr} -->${data}`
* 整个教程在不断迭代更新中https://github.com/alwxkxk/soft-and-hard
*/
const net = require('net') const net = require('net')
const PORT = "9001" const PORT = "9001"