32 lines
949 B
Markdown
32 lines
949 B
Markdown
# bytepacket
|
|
|
|
二进制封包/解包工具(小端序):按偏移读写整数/字符串/字节集,兼容易语言协议——
|
|
含 GBK 字符串转换与易语言日期类型。
|
|
|
|
> 迁移自 go-hua/bytepacket,代码保持原样。
|
|
|
|
## 用法
|
|
|
|
```go
|
|
import "git.zeroonesoft.cn/golib/zogo/bytepacket"
|
|
|
|
// 解包:从字节集创建后按序读取
|
|
p := bytepacket.NewPacket(data)
|
|
v := p.ReadInt32()
|
|
s := p.ReadStringGbk() // GBK → UTF-8
|
|
t := p.ReadElangDateTime() // 易语言日期 → time.Time
|
|
|
|
// 封包:按序写入后取结果
|
|
w := bytepacket.NewPacket(nil)
|
|
w.WriteInt32(100)
|
|
w.WriteStringGbk("中文")
|
|
wire := w.GetData()
|
|
```
|
|
|
|
完整可运行例程:[examples/bytepacket/main.go](../examples/bytepacket/main.go)
|
|
|
|
## 注意
|
|
|
|
- 小端序,与常见网络字节序(大端)不同,跨语言对接时先确认字节序。
|
|
- 主要面向易语言系既有协议的兼容场景;新协议建议用本仓库 `frame` 或 `proto`。
|