我使用 Cobra 框架向我的 CLI 应用程序添加了一个新命令。该命令应该启动接受套接字连接的 TCP 服务器。它接收一个有效负载,它是absolute一个文件/目录的路径,并尝试删除它。这是命令的代码package cmdimport ( "bufio" "fmt" "net" "os" "github.com/spf13/cobra" "wpgenius.io/util")var cachePurgerCmd = &cobra.Command{ Use: "cache-purger", Short: "Listen for request to purge NGINX page cache", Run: func(cmd *cobra.Command, args []string) { dstream, err := net.Listen("tcp", ":9876") if err != nil { util.HandleError(err, "Can not start listener..") return } fmt.Println("Listening for purge requests...") defer dstream.Close() for { con, err := dstream.Accept() if err != nil { util.HandleError(err, "Can not accept connection") os.Exit(1) } go handleRequest(con) } },}func handleRequest(con net.Conn) { path, err := bufio.NewReader(con).ReadString('\n') if err != nil { return } defer con.Close() err = os.Remove(path) if err != nil { con.Write([]byte("ERROR")) fmt.Println(err) util.HandleError(err, "Can not delete cache file") return } con.Write([]byte("SUCCESS"))}func init() { rootCmd.AddCommand(cachePurgerCmd)}尽管文件/目录存在,但我仍然会no such file or directory出错。我通过简单地将它添加os.Remove到main函数中来进行健全性检查,以确保它与路径无关,并且我可以看到它成功删除了文件/目录。我不确定它是否go routing与tcp server!任何帮助将不胜感激!
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消