Вот пример 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. Когда сообщение получено, он печатает адрес клиента и само сообщение. Затем он отправляет ответ обратно клиенту с сообщением «Сообщение получено».