2025-10-23 13:06:22 +07:00

67 lines
1.5 KiB
Go

package main
import (
"fmt"
"net"
"os"
"sync"
"rtp-app/config"
"rtp-app/handlers"
"rtp-app/license"
)
const (
address = "0.0.0.0:5005"
)
type Client struct {
Addr *net.UDPAddr
Conn *net.UDPConn
}
var (
clients = make(map[string]net.UDPAddr)
clientsMu sync.Mutex
)
func init() {
uniqueID, err := license.GetUniqueID()
if err != nil {
fmt.Println("Ошибка:", err)
os.Exit(1)
}
fmt.Println("Уникальный идентификатор сервера:", uniqueID)
config.Cfg = config.LoadConfig("config.json")
valid, err := license.ValidateLicense(config.Cfg.LicenseCode)
if err != nil {
fmt.Println("Ошибка проверки лицензии:", err)
os.Exit(1)
}
if valid {
fmt.Println("Лицензия действительна.")
} else {
fmt.Println("Лицензия недействительна.")
os.Exit(1)
}
}
func main() {
udpAddr, err := net.ResolveUDPAddr("udp4", address)
if err != nil {
fmt.Println("Ошибка при разрешении адреса:", err)
os.Exit(1)
}
conn, err := net.ListenUDP("udp4", udpAddr)
if err != nil {
fmt.Println("Ошибка при запуске сервера:", err)
os.Exit(1)
}
defer conn.Close()
fmt.Printf("Сервер запущен на %s\n", address)
var wg sync.WaitGroup
wg.Add(1)
go handlers.HandleConnection(conn, &wg)
wg.Wait()
}