新TAP测试(TODO 解析arp)
This commit is contained in:
parent
8fa6a1bf96
commit
81aa28f1cb
|
@ -208,7 +208,8 @@ func (nt *NetTunnel) SendFrames(stream gen.FrameService_SendFramesServer) error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic(err)
|
log.Panic(err)
|
||||||
}
|
}
|
||||||
nt.writer <- request.GetFrames()
|
|
||||||
|
nt.writer <- Decompress(request.GetFrames())
|
||||||
|
|
||||||
// frames := Decompress(request.GetFrames())
|
// frames := Decompress(request.GetFrames())
|
||||||
// if len(frames) > 0 {
|
// if len(frames) > 0 {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"log"
|
"log"
|
||||||
gen "slimming/proto/gen"
|
gen "slimming/proto/gen"
|
||||||
|
@ -101,7 +102,7 @@ func (cli *RPCClient) run() {
|
||||||
|
|
||||||
// var ticker = time.NewTicker(time.Millisecond * 1)
|
// var ticker = time.NewTicker(time.Millisecond * 1)
|
||||||
|
|
||||||
// buf := bytes.NewBuffer(nil)
|
buffer := bytes.NewBuffer(nil)
|
||||||
for buf := range cli.Frames {
|
for buf := range cli.Frames {
|
||||||
|
|
||||||
// select {
|
// select {
|
||||||
|
@ -130,9 +131,11 @@ func (cli *RPCClient) run() {
|
||||||
// continue
|
// continue
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
Compress(buffer, buf)
|
||||||
|
|
||||||
// 发到对面的网卡
|
// 发到对面的网卡
|
||||||
err = stream.Send(&gen.RequestFrames{
|
err = stream.Send(&gen.RequestFrames{
|
||||||
Frames: buf,
|
Frames: buffer.Bytes(),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic(err)
|
log.Panic(err)
|
||||||
|
|
51
utils.go
51
utils.go
|
@ -3,49 +3,52 @@ package main
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"encoding/gob"
|
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
|
"github.com/klauspost/compress/zstd"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Compress(writer io.Writer, data [][]byte) {
|
func Compress(writer io.Writer, data []byte) {
|
||||||
|
|
||||||
// encode gob
|
// encode gob
|
||||||
enc := gob.NewEncoder(writer)
|
// enc := gob.NewEncoder(writer)
|
||||||
err := enc.Encode(data)
|
// err := enc.Encode(data)
|
||||||
if err != nil {
|
|
||||||
log.Panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// zstd compress
|
|
||||||
// zenc, err := zstd.NewWriter(writer)
|
|
||||||
// if err != nil {
|
// if err != nil {
|
||||||
// log.Panic(err)
|
// log.Panic(err)
|
||||||
// }
|
// }
|
||||||
// err = zenc.Flush()
|
|
||||||
// if err != nil {
|
// zstd compress
|
||||||
// log.Println(err)
|
zenc, err := zstd.NewWriter(writer)
|
||||||
// }
|
if err != nil {
|
||||||
|
log.Panic(err)
|
||||||
|
}
|
||||||
|
zenc.Write(data)
|
||||||
|
err = zenc.Flush()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Decompress(data []byte) (frames [][]byte) {
|
func Decompress(data []byte) (frames []byte) {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
var buf = bytes.NewBuffer(data)
|
var buf = bytes.NewBuffer(data)
|
||||||
// var zdec *zstd.Decoder
|
var zdec *zstd.Decoder
|
||||||
// zdec, err = zstd.NewReader(buf)
|
zdec, err = zstd.NewReader(buf)
|
||||||
// if err != nil {
|
|
||||||
// log.Panic(err)
|
|
||||||
// }
|
|
||||||
// zdec.Close()
|
|
||||||
|
|
||||||
dec := gob.NewDecoder(buf)
|
|
||||||
err = dec.Decode(&frames)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic(err)
|
log.Panic(err)
|
||||||
}
|
}
|
||||||
|
zdec.Close()
|
||||||
|
frames = buf.Bytes()
|
||||||
|
|
||||||
|
// dec := gob.NewDecoder(buf)
|
||||||
|
// err = dec.Decode(&frames)
|
||||||
|
// if err != nil {
|
||||||
|
// log.Panic(err)
|
||||||
|
// }
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user