Skip to content

Commit

Permalink
feat(udp): Added udp server
Browse files Browse the repository at this point in the history
  • Loading branch information
flc1125 committed Dec 28, 2023
1 parent 0cac3a3 commit 74eb42b
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions udp/server_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package udp

import (
"context"
"net"
"sync"
"testing"
"time"
)

func TestServer(t *testing.T) {
var (
server *Server
wg sync.WaitGroup
done = make(chan []byte, 1)
)

wg.Add(3)

go func() {
defer wg.Done()

server = NewServer(":12190", WithHandler(func(conn net.PacketConn, buf []byte, addr net.Addr) {
done <- buf
}), WithRecoveryHandler(func(conn net.PacketConn, buf []byte, addr net.Addr, err interface{}) {
t.Log(err)
}), WithBufSize(1024))

server.Start(context.Background())
}()

go func() {
defer wg.Done()

c, err := net.Dial("udp", ":12190")
if err != nil {
t.Error(err)
return
}
defer c.Close()

_, err = c.Write([]byte("test"))
if err != nil {
t.Error(err)
return
}
}()

go func() {
defer wg.Done()

time.Sleep(time.Second * 1)
server.Stop(context.Background())
}()

wg.Wait()

buf := <-done
if string(buf) != "test" {
t.Fatal("buf not equal test")
}
}

0 comments on commit 74eb42b

Please sign in to comment.