新TAP测试(TODO 解析arp)

This commit is contained in:
黄思敏 2022-09-01 14:42:12 +08:00
parent a60ac04577
commit 7c2bbb5dcb
2 changed files with 31 additions and 19 deletions

View File

@ -98,7 +98,7 @@ func NewNetTunnel() *NetTunnel {
var frame ethernet.Frame = rbuf var frame ethernet.Frame = rbuf
log.Printf("% x len: %d", frame.Ethertype(), len(frame)) // log.Printf("% x len: %d", frame.Ethertype(), len(frame))
switch frame.Ethertype() { switch frame.Ethertype() {
case ethernet.ARP: case ethernet.ARP:
arp := ARP(frame) arp := ARP(frame)

View File

@ -6,7 +6,6 @@ import (
"log" "log"
gen "slimming/proto/gen" gen "slimming/proto/gen"
"sync" "sync"
"time"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/credentials/insecure"
@ -82,32 +81,45 @@ func (cli *RPCClient) run() {
defer stream.CloseSend() defer stream.CloseSend()
var frames [][]byte var frames [][]byte
var nextTime = time.Now().Add(time.Millisecond * 20) // var nextTime = time.Now().Add(time.Millisecond * 20)
var now = time.Now() // var now = time.Now()
buf := bytes.NewBuffer(nil) buf := bytes.NewBuffer(nil)
for { for {
frames = append(frames, <-cli.Frame) frames = append(frames, <-cli.Frame)
if len(frames) >= 1000 || nextTime.After(now) { buf.Reset()
nextTime = now Compress(buf, frames)
frames = nil
// TODO: // 发到对面的网卡
// Contact the server and print out its response. err = stream.Send(&gen.RequestFrames{
buf.Reset() Frames: buf.Bytes(),
Compress(buf, frames) })
frames = nil
// 发到对面的网卡 if err != nil {
err = stream.Send(&gen.RequestFrames{ log.Panic(err)
Frames: buf.Bytes(),
})
if err != nil {
log.Panic(err)
}
} }
// if len(frames) >= 1000 || nextTime.After(now) {
// nextTime = now
// // TODO:
// // Contact the server and print out its response.
// buf.Reset()
// Compress(buf, frames)
// frames = nil
// // 发到对面的网卡
// err = stream.Send(&gen.RequestFrames{
// Frames: buf.Bytes(),
// })
// if err != nil {
// log.Panic(err)
// }
// }
} }
} }