1 server.go

  1. package main
  2. import (
  3. "fmt"
  4. "net"
  5. )
  6. func main() {
  7. listen, err := net.ListenUDP("udp", &net.UDPAddr{
  8. IP: net.IPv4(0, 0, 0, 0),
  9. Port: 9090,
  10. })
  11. if err != nil {
  12. return
  13. }
  14. for {
  15. var data [1024]byte
  16. n, addr, err := listen.ReadFromUDP(data[:])
  17. if err != nil {
  18. break
  19. }
  20. go func() {
  21. fmt.Printf("addr:%v data:%v count:%v\n", addr, string(data[:n]), n)
  22. _, err = listen.WriteToUDP([]byte("received success!"), addr)
  23. }()
  24. }
  25. }

2 client.go

  1. package main
  2. import (
  3. "fmt"
  4. "net"
  5. "time"
  6. )
  7. func main() {
  8. conn, err := net.DialUDP("udp", nil, &net.UDPAddr{
  9. IP: net.IPv4(192, 168, 1, 103),
  10. Port: 9090,
  11. })
  12. if err != nil {
  13. return
  14. }
  15. go func() {
  16. for {
  17. var data [1024]byte
  18. n, addr, _ := conn.ReadFromUDP(data[:])
  19. fmt.Printf("addr:%v data:%v count:%v\n", addr, string(data[:n]), n)
  20. }
  21. }()
  22. for i := 0; i < 100; i++ {
  23. fmt.Print("hi")
  24. _, err := conn.Write([]byte("hello server!"))
  25. if err != nil {
  26. return
  27. }
  28. }
  29. time.Sleep(time.Hour)
  30. }