Skip to content

Instantly share code, notes, and snippets.

@hissinger
Last active August 31, 2019 08:38
Show Gist options
  • Save hissinger/c3998076b4f41e8c6eed7a421d7965b1 to your computer and use it in GitHub Desktop.
Save hissinger/c3998076b4f41e8c6eed7a421d7965b1 to your computer and use it in GitHub Desktop.
udp server/client test sample
package main
import (
"fmt"
"net"
"time"
)
func main() {
data := make([]byte, 2048)
conn, err := net.Dial("udp", "127.0.0.1:1234")
if err != nil {
fmt.Printf("Some error %v", err)
return
}
start := time.Now()
for i := 0; i < 100000; i++ {
_, err = conn.Write([]byte(data))
if err != nil {
fmt.Println(err.Error())
}
}
elapsed := time.Since(start)
fmt.Println("elapsed time: ", elapsed)
conn.Close()
}
package main
import (
"fmt"
"net"
"time"
)
func main() {
p := make([]byte, 2048)
addr := net.UDPAddr{
Port: 1234,
IP: net.ParseIP("127.0.0.1"),
}
ser, err := net.ListenUDP("udp", &addr)
if err != nil {
fmt.Printf("Some error %v\n", err)
return
}
recvCnt := 0
ticker := time.NewTicker(1 * time.Second)
go func() {
for {
_, _, err := ser.ReadFromUDP(p)
if err != nil {
fmt.Printf("Some error %v", err)
continue
}
recvCnt++
}
}()
for {
select {
case <-ticker.C:
fmt.Println("recv: ", recvCnt)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment