67 lines
1.5 KiB
Go
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()
|
|
}
|