diff --git a/launcher.go b/launcher.go new file mode 100644 index 0000000..1188190 --- /dev/null +++ b/launcher.go @@ -0,0 +1,54 @@ +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() + } +}