init
This commit is contained in:
53
examples/forward/udp/cli.go
Normal file
53
examples/forward/udp/cli.go
Normal file
@ -0,0 +1,53 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"log"
|
||||
"net"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
concurrency int
|
||||
saddr string
|
||||
)
|
||||
|
||||
func init() {
|
||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||
|
||||
flag.StringVar(&saddr, "S", ":18080", "server address")
|
||||
flag.IntVar(&concurrency, "c", 1, "Number of multiple echo to make at a time")
|
||||
flag.Parse()
|
||||
}
|
||||
|
||||
func main() {
|
||||
for i := 0; i < concurrency; i++ {
|
||||
go udpEchoLoop()
|
||||
}
|
||||
select {}
|
||||
}
|
||||
|
||||
func udpEchoLoop() {
|
||||
addr, err := net.ResolveUDPAddr("udp", saddr)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
conn, err := net.DialUDP("udp", nil, addr)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
msg := []byte(`abcdefghijklmnopqrstuvwxyz`)
|
||||
for {
|
||||
if _, err := conn.Write(msg); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
b := make([]byte, 1024)
|
||||
_, err := conn.Read(b)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
// log.Println(string(b[:n]))
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user