This commit is contained in:
黄思敏 2022-08-30 09:37:27 +08:00
parent c53a95e696
commit c3ef9455f0

View File

@ -15,6 +15,7 @@ import (
"sync/atomic" "sync/atomic"
"time" "time"
"github.com/klauspost/compress/zstd"
"github.com/songgao/packets/ethernet" "github.com/songgao/packets/ethernet"
"github.com/songgao/water" "github.com/songgao/water"
"github.com/songgao/water/waterutil" "github.com/songgao/water/waterutil"
@ -97,14 +98,14 @@ func (cli *RPCClient) run() {
} }
// zstd compress // zstd compress
// zenc, err := zstd.NewWriter(buf) zenc, err := zstd.NewWriter(buf)
// if err != nil { if err != nil {
// log.Panic(err) log.Panic(err)
// } }
// err = zenc.Flush() err = zenc.Flush()
// if err != nil { if err != nil {
// log.Println(err) log.Println(err)
// } }
// 发到对面的网卡 // 发到对面的网卡
err = stream.Send(&gen.Request{ err = stream.Send(&gen.Request{
@ -249,18 +250,18 @@ func (nc *NetCard) runRead() {
func (nc *NetCard) runWrite() { func (nc *NetCard) runWrite() {
var ifce *water.Interface = nc.ifce var ifce *water.Interface = nc.ifce
var err error // var err error
for wframe := range nc.FrameChan { for wframe := range nc.FrameChan {
log.Printf("get wframes bytes len: %d", len(wframe)) log.Printf("get wframes bytes len: %d", len(wframe))
var buf = bytes.NewBuffer(wframe) var buf = bytes.NewBuffer(wframe)
// zdec, err := zstd.NewReader(buf) zdec, err := zstd.NewReader(buf)
// if err != nil { if err != nil {
// log.Panic(err) log.Panic(err)
// } }
// zdec.Close() zdec.Close()
dec := gob.NewDecoder(buf) dec := gob.NewDecoder(buf)
var bufs [][]byte var bufs [][]byte
@ -271,12 +272,9 @@ func (nc *NetCard) runWrite() {
for _, buf := range bufs { for _, buf := range bufs {
var wbuf []byte log.Printf("get wframes decode len: %d, write buf: %d", len(buf), len(buf))
wbuf = append(wbuf, buf[0:8]...)
wbuf = append(wbuf, waterutil.IPv4Payload(buf)...)
log.Printf("get wframes decode len: %d, write buf: %d", len(buf), len(wbuf))
log.Printf("get decode frames decode source: %s dst: %s", waterutil.IPv4Source(buf), waterutil.IPv4Destination(buf)) log.Printf("get decode frames decode source: %s dst: %s", waterutil.IPv4Source(buf), waterutil.IPv4Destination(buf))
_, err := ifce.Write(wbuf) _, err := ifce.Write(buf)
if err != nil { if err != nil {
log.Panic(err) log.Panic(err)
} }