title: How support concurrent connections with a UDP Server using go
body: <p>I'm playing with my first basic udp server and I wondering how support concurrent connections? I think with my code only can get a connection at a time in order to process it, with a tcp simple server the things seems to be more clear than on this case, throwing a goroutine to process the data, but here I'm  very lost, thanks in advance.</p>
  
  <pre><code>func main() {
      ListenerUDP("127.0.0.1", 1111)
  }
  
  func ListenerUDP(ip string, port int) {
      buffer := make([]byte, 1024)
  
      log.Println("Listener Started!")
      addr := net.UDPAddr{
          Port: port,
          IP:   net.ParseIP(ip),
      }
  
      conn, err := net.ListenUDP("udp", &amp;addr)
      if err != nil {
          log.Fatalf("Error Listening:%s\n", err.Error())
          panic(err)
      }
      defer conn.Close()
  
      for {
          _, remoteAddr, err := conn.ReadFromUDP(buffer[0:])
          if err != nil {
              log.Fatalf("Error:%s\n", err)
          }
          // Process data here? using a &gt; go something()?
          fmt.Printf("Data:%s From:%v\n", buffer, remoteAddr)
      }
  
  }
  </code></pre>