1
0
mirror of https://github.com/fumiama/WireGold.git synced 2026-06-06 08:20:25 +08:00

fix 分片

This commit is contained in:
fumiama
2021-12-31 01:13:33 +08:00
parent 0dca958ef9
commit 7a30bfb1e6

View File

@@ -75,20 +75,20 @@ func (l *Link) Read() *head.Packet {
// Write 向 peer 发包
func (l *Link) Write(p *head.Packet, istransfer bool) (n int, err error) {
if len(p.Data) <= (65536 - 64) {
if len(p.Data) <= (32768 - 64) {
return l.write(p, istransfer)
}
data := p.Data
offset := 0
for len(data) > (65536 - 64) {
for len(data) > (32768 - 64) {
packet := *p
packet.Data = data[offset*(65536-64) : (offset+1)*(65536-64)]
packet.Data = data[offset*(32768-64) : (offset+1)*(32768-64)]
i, err := l.write(&packet, istransfer)
n += i
if err != nil {
return n, err
}
data = data[(offset+1)*(65536-64):]
data = data[(offset+1)*(32768-64):]
}
return n, nil
}