UdpServer.go 898 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package main
  2. import (
  3. "fmt"
  4. "net"
  5. )
  6. func main() {
  7. // 本地监听地址
  8. localAddr, err := net.ResolveUDPAddr("udp", "0.0.0.0:8888")
  9. if err != nil {
  10. fmt.Println("Error resolving address:", err)
  11. return
  12. }
  13. // 创建UDP连接
  14. conn, err := net.ListenUDP("udp", localAddr)
  15. if err != nil {
  16. fmt.Println("Error creating UDP connection:", err)
  17. return
  18. }
  19. defer conn.Close()
  20. fmt.Println("UDP Server started and listening on", localAddr)
  21. // 接收数据循环
  22. buffer := make([]byte, 10240)
  23. for {
  24. n, addr, err := conn.ReadFromUDP(buffer)
  25. if err != nil {
  26. fmt.Println("Error reading from connection:", err)
  27. continue
  28. }
  29. // 处理接收到的数据并回显给客户端
  30. fmt.Printf("Received message from %s: %s\n", addr.String(), string(buffer[:n]))
  31. _, err = conn.WriteToUDP(buffer[:n], addr)
  32. if err != nil {
  33. fmt.Println("Error writing to connection:", err)
  34. }
  35. }
  36. }