新TAP测试(TODO 解析arp)
This commit is contained in:
parent
a60ac04577
commit
7c2bbb5dcb
@ -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)
|
||||||
|
@ -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)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user