1
0
mirror of https://github.com/MADTeacher/go_basics.git synced 2025-11-23 21:34:47 +02:00
Files
go_basics/part_8/8.1/udp/server/server.go
Stanislav Chernyshev d4e7211d1d Глава 8
Допричесать игру
2025-06-22 21:04:23 +03:00

45 lines
812 B
Go

package server
import (
"fmt"
"log"
"net"
"strings"
"time"
)
func checkErr(err error) {
if err != nil {
log.Fatal(err)
}
}
func RunServer(port int) {
s, err := net.ResolveUDPAddr("udp4", fmt.Sprintf(":%d", port))
checkErr(err)
connection, err := net.ListenUDP("udp4", s)
checkErr(err)
defer connection.Close()
buffer := make([]byte, 1024)
fmt.Println("Oo")
for {
n, addr, err := connection.ReadFromUDP(buffer) // ждем подсоединение клиента
checkErr(err)
fmt.Printf("<- %s", string(buffer[0:n]))
if strings.TrimSpace(string(buffer[0:n])) == "STOP" {
fmt.Println()
fmt.Println("Exiting UDP server!")
return
}
time.Sleep(5 * time.Second)
fmt.Printf("->: %s", string(buffer))
_, err = connection.WriteToUDP(buffer, addr)
checkErr(err)
}
}