基础协议:tcp
利用go语言gob编码格式,在一个TCP连接上同时进行多路流式数据传输和文件传输。
实现代码:https://gitee.com/rocket049/gobstream
引用方法:import "gitee.com/rocket049/gobstream"
发送方先发送文件头,指定Session,然后顺序发送数据块;接收方根据文件头Session接收文件。
struct {
Typ string
Name string
Mode uint32
Session uint32
}
file
struct {
Typ string
Session uint32
Status string
Format string
Data []byte
}
end
表示结束,此时Format
和Data
都应该是空。filedata
根据指定Session,发送数据,可以单独发送数据快,也可以分段发送。
struct {
Typ string
Status string
Session uint32
Format string
Data []byte
}
streamdata
start
长数据块的第一个;alone
单独数据块struct {
Typ string
Status string
Session uint32
Format string
Data []byte
}
streamdata
struct {
Typ string
Status string
Session uint32
}
streamdata
end
struct {
Typ string
Session uint32
Status string
Name string
Mode uint32
Format string
Data []byte
Ext uint32
}