- 计算机存储
- 010101010001011010101010101
- 00000001 11111111
- 1 字节占 8位
- 11111111 表示 255 ,8位 0-255
- 256 怎么表示? 000000001 00000000 2个字节表示一个数 short ,char 类型
- int 需要多少个字节 4个字节,string 需要多少个字节 (取决于编码,不展开)
- long 64 字节
如何表示一段数据
0011010100111000
00110101 00111000
53 56
13624
'58'
二进制片段并无意义,因为不同解析规则对应不同的结果
4位类型--4位长度--内容
如何设计一个协议
1byte(版本号) | 4byte(协义总长度) | 4byte(序列号) | 1byte(服务编号) | 1byte(消息体类型) | 1byte
所采用的压缩算法 | 1byte 序列化规则 | 1byte 平台(.net java ...) | n byte消息体 | 5byte(分界符)
- class 的协议
class User{
private a1:"",
static geta(){}
}
4byte数据类型|4 byte类名长度|n byte 类名| n byte 类属性长度|1 byte 属性类型|。。。。
- 字段协议
User.prototype={a:1,b:"你好啊"}
1 byte 类型(int)|4 byte int存储|1 byte 类型 (string)| 4 byte (string长度) | n byte (string 内容)
协议不是单方面的,需要传输双方约定
node 将遇到什么挑战
node 要做服务端,要解决的问题太多,语言特性,类型约定,包管理之类的,与java 相比相差甚远。
node 只能做客户端
类型解析