package main import ( "flag" "log" "sync" ) func main() { var webOnly = flag.Bool("web", false, "只启动Web服务器(原生http)") var ginOnly = flag.Bool("gin", false, "只启动Gin Web服务器") var udpOnly = flag.Bool("udp", false, "只启动UDP服务器") flag.Parse() // 设置日志 setupLogger() var wg sync.WaitGroup if *webOnly { // 只启动原生Web服务器 log.Println("启动原生Web服务器模式...") StartWebServer() } else if *ginOnly { // 只启动Gin Web服务器 log.Println("启动Gin Web服务器模式...") StartGinServer() } else if *udpOnly { // 只启动UDP服务器 log.Println("启动UDP服务器模式...") startUDP() } else { // 同时启动UDP和Gin Web服务器 log.Println("启动完整模式:UDP + Gin Web服务器...") wg.Add(2) // 启动UDP服务器 go func() { defer wg.Done() log.Println("正在启动UDP服务器...") startUDP() }() // 启动Gin Web服务器 go func() { defer wg.Done() log.Println("正在启动Gin Web服务器...") StartGinServer() }() wg.Wait() } }