udp_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package network
  2. import (
  3. "bytes"
  4. "strings"
  5. "testing"
  6. "time"
  7. )
  8. const (
  9. testUDPServerAddress = "127.0.0.1:10060"
  10. testUDPServerTimeout = time.Second
  11. testUDPServerReceiveBufferSize = 1024
  12. )
  13. func TestUDP(t *testing.T) {
  14. server := &UDPServer{}
  15. err := server.Connect(testUDPServerAddress, NewUDPServerOptions(
  16. WithUDPServerReadTimeout(testUDPServerTimeout),
  17. WithUDPServerWriteTimeout(testUDPServerTimeout),
  18. WithUDPServerReceiveBufferSize(testUDPServerReceiveBufferSize),
  19. WithUDPServerRequestCallback(func(data []byte) ([]byte, error) {
  20. requestBuffer := bytes.NewReader(data)
  21. requestDataReader := NewDataReader(requestBuffer)
  22. requestBytes, err := requestDataReader.Bytes(len(data))
  23. if err != nil {
  24. return nil, err
  25. }
  26. responseBytes := []byte(strings.ToUpper(string(requestBytes)))
  27. responseBuffer := &bytes.Buffer{}
  28. responseReader := NewDataWriter(responseBuffer)
  29. err = responseReader.Bytes(responseBytes)
  30. if err != nil {
  31. return nil, err
  32. }
  33. return responseBuffer.Bytes(), nil
  34. }),
  35. ))
  36. if err != nil {
  37. t.Fatal(err)
  38. }
  39. defer server.Disconnect()
  40. // TODO 完成客户端后补充
  41. }