Пример UDP-сервера в Golang (Go) — реализация простого UDP-сервера

Вот пример UDP-сервера, реализованного на Go (Golang):

package main
import (
    "fmt"
    "net"
)
func main() {
    // Create a UDP address to listen on
    address, err := net.ResolveUDPAddr("udp", ":8080")
    if err != nil {
        fmt.Println("Error resolving address:", err)
        return
    }
// Create a UDP connection
    conn, err := net.ListenUDP("udp", address)
    if err != nil {
        fmt.Println("Error listening:", err)
        return
    }
    defer conn.Close()
    fmt.Println("UDP server is listening on", address.String())
    // Buffer for incoming data
    buffer := make([]byte, 1024)
    for {
        // Read data from UDP connection
        n, clientAddr, err := conn.ReadFromUDP(buffer)
        if err != nil {
            fmt.Println("Error reading:", err)
            continue
        }
// Display received data
        fmt.Printf("Received %d bytes from %s: %s\n", n, clientAddr.String(), string(buffer[:n]))
        // Send response back to the client
        _, err = conn.WriteToUDP([]byte("Message received"), clientAddr)
        if err != nil {
            fmt.Println("Error sending response:", err)
            continue
        }
    }
}

В этом примере настраивается UDP-сервер, который прослушивает входящие сообщения через порт 8080. Когда сообщение получено, он печатает адрес клиента и само сообщение. Затем он отправляет ответ обратно клиенту с сообщением «Сообщение получено».