Ack Syn Fin
Ack Syn Fin
1.核心模块
2.
1.
1.
1.异步执行流程,内部使用线程池;
2.
1.
那Nno Socket
comand js规范:
加载模块
node应用由模块构成
## 申请缓冲区
new Buffer(" ");
Buffer.from(" "); //只能传入字符串,默认用utf-8,中文占三个字节,每个字节范围0-255
Buffer.alloc(10,1); //类似c++vector
哈哈?
字符串拼接的正确方式:
国内外文字差异性导致字符串乱码
第一种方式:
re.setEncoding("utf8");
第二种方式:
创建数组 创建保存数组的大小 把字符串 push进去数组 size+=字节的长度
结束的时候 创建一个Buffer.concat(数组,大小)进行项的合并
网络编程基础概念:
Node无需额外的容器
提供了net dgron http https
TCP 传输 控制 协议
OSI模型 基层协议
应用层 表示层 会话层 传输层 网络层 链路层 物理层
三次握手 客户发请求到服务端
客户端收到
服务端知道客户端收到
创建TCP服务端:
请求net
创建net.createServer添加回调
连接事件的回调
socket作为参数
socket.on作为事件
data接收数据
三次握手:
SYN ACK SYN ACK
FIN 关闭连接 触发 end事件
创建UDP服务端:
用户数据包协议
TCP 面对链接
UDP 广播 资源消耗低
使用 dgram
dgram.createSocket('udp4');
UDP发送消息小例子:
使用udp的listening事件进行监听
//客户端:
同样使用dgram
同样使用createSocket 使用send属性
msg作为形参,0,msg.length,1100,"127.0.0.1"
回调作为发送消息收到的回调function(err,data){
client.close();
}
JS运行在hou'du
没带扩展名的,默认为js,json,node
建议,除了js其余路径加上后缀
在Node中每个模块(一个文件就是一个模块)都是一个对象。
服务模型演变过程:
同步模型: 按顺序处理
复制进程模型:使用进程来解决并发
多线程模型:堆栈解决 使用CPU资源
事件驱动模型:Node 单线程
Npm包管理工具。
子进程创建:充分利用多核CPU
使用子进程模块 require("child_process")
A.spawn 生成
分配任务添加命令, 执行文件
绑定控制台消息 stdout 输出 绑定事件