package udp import ( "fmt" "testing" "time" ) type TestHandler struct{} func (h *TestHandler) HandlePacket(conn *Connection, packet *ApplicationPacket) { fmt.Printf("Received packet - Opcode: 0x%04X, Data length: %d\n", packet.Opcode, len(packet.Data)) // Echo back a response response := &ApplicationPacket{ Opcode: OpLoginReplyMsg, Data: []byte("Hello from server"), } conn.SendPacket(response) } func TestServer(t *testing.T) { handler := &TestHandler{} server, err := NewServer(":9999", handler) if err != nil { t.Fatalf("Failed to create server: %v", err) } go func() { if err := server.Start(); err != nil { t.Errorf("Server error: %v", err) } }() // Let it run for a bit time.Sleep(100 * time.Millisecond) server.Stop() }