41 lines
771 B
Go
41 lines
771 B
Go
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()
|
|
}
|