Files
GaCy-GO/internal/gameserver/testclient_test.go
T

41 lines
853 B
Go
Raw Normal View History

package gameserver
import (
"net"
"time"
)
// testUDPConn wraps a UDP socket for the smoke test client.
type testUDPConn struct {
conn *net.UDPConn
addr *net.UDPAddr
}
func dialUDP(serverAddr string) (*testUDPConn, error) {
server, err := net.ResolveUDPAddr("udp", serverAddr)
if err != nil {
return nil, err
}
conn, err := net.ListenUDP("udp", &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1)})
if err != nil {
return nil, err
}
return &testUDPConn{conn: conn, addr: server}, nil
}
func (c *testUDPConn) write(data []byte) (int, error) {
return c.conn.WriteToUDP(data, c.addr)
}
func (c *testUDPConn) read() ([]byte, error) {
buf := make([]byte, 65536)
n, _, err := c.conn.ReadFromUDP(buf)
if err != nil {
return nil, err
}
return buf[:n], nil
}
func (c *testUDPConn) setReadDeadline(t time.Time) {
_ = c.conn.SetReadDeadline(t)
}