Feat: 代码提交
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"computer-network/config"
|
||||
"computer-network/server"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("=== Simple Web Server ===")
|
||||
fmt.Println()
|
||||
|
||||
cfg, err := config.Load("config.json")
|
||||
if err != nil {
|
||||
fmt.Printf("Warning: Could not load config file: %v\n", err)
|
||||
fmt.Println("Using default configuration.")
|
||||
cfg, _ = config.Load("")
|
||||
}
|
||||
|
||||
fmt.Printf("Configuration loaded:\n")
|
||||
fmt.Printf(" HTTP Port: %d\n", cfg.GetPort())
|
||||
fmt.Printf(" Admin Port: %d\n", cfg.GetAdminPort())
|
||||
fmt.Printf(" Root Directory: %s\n", cfg.GetRootDir())
|
||||
fmt.Println()
|
||||
|
||||
webServer := server.NewServer(cfg)
|
||||
err = webServer.Start()
|
||||
if err != nil {
|
||||
fmt.Printf("Failed to start web server: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
adminServer := server.NewAdminServer(cfg)
|
||||
adminServer.SetWebServer(webServer)
|
||||
|
||||
err = adminServer.Start()
|
||||
if err != nil {
|
||||
fmt.Printf("Failed to start admin server: %v\n", err)
|
||||
webServer.Stop()
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("\nServer is running. Press Ctrl+C to stop.\n")
|
||||
|
||||
sigChan := make(chan os.Signal, 1)
|
||||
signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM)
|
||||
|
||||
<-sigChan
|
||||
|
||||
fmt.Println("\nShutting down server...")
|
||||
adminServer.Stop()
|
||||
webServer.Stop()
|
||||
|
||||
cfg.Save("config.json")
|
||||
fmt.Println("Server stopped. Configuration saved.")
|
||||
}
|
||||
Reference in New Issue
Block a user