diff --git a/controllers/print_controller.go b/controllers/print_controller.go index 4d7640b71..a6a2f49ad 100644 --- a/controllers/print_controller.go +++ b/controllers/print_controller.go @@ -1,12 +1,10 @@ package controllers import ( - "bufio" "fmt" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/globals" beego "github.com/astaxie/beego/server/web" - "io" "net" ) @@ -20,21 +18,13 @@ type CallBackPrint struct { } func (c *PrintController) Msg() { - //if c.Ctx.Input.Method() == http.MethodPost { - l, err := net.Listen("tcp", ":8000") + conn, err := net.Dial("tcp", "www.jxcs.net:8000") if err != nil { - fmt.Println("listen error:", err) + fmt.Println("Dial err:", err) return } - for { - c, err := l.Accept() - if err != nil { - fmt.Println("accept error:", err) - break - } - globals.SugarLogger.Debugf("tcp socket:", utils.Format4Output(c, true)) - go handleConn(c) - } + connHandler(conn) + //if c.Ctx.Input.Method() == http.MethodPost { callBackPrint := &CallBackPrint{} globals.SugarLogger.Debugf("print callback callbackResponse:%s", utils.Format4Output(c.Ctx.Request, true)) c.Data["json"] = callBackPrint @@ -44,26 +34,28 @@ func (c *PrintController) Msg() { //} } -func handleConn(c net.Conn) { - if c == nil { - fmt.Println("conn is nil") - return - } - defer c.Close() - reader := bufio.NewReader(c) +func connHandler(c net.Conn) { + //接收终端输入 + //reader := bufio.NewReader(os.Stdin) + //缓冲 + buf := make([]byte, 1024) + fmt.Println("Please input data...") for { - //ReadString阻塞,直到读到\n - msg, err := reader.ReadString('\n') + //读取终端输入直到读取到\n + //input, err := reader.ReadString('\n') + //if err != nil { + // fmt.Println("ReadString err:", err) + // return + //} + //写入数据 + c.Write([]byte("aaaaaaaaaaaaaa")) + //服务器端返回的数据写入buf + cnt, err := c.Read(buf) if err != nil { - if err == io.EOF { - fmt.Println("connection close") - } else { - fmt.Println("ReadString err", err) - } + fmt.Println("Read err:", err) return } - fmt.Println("read data:", msg) - b := []byte("ok") - c.Write(b) + //服务器端回传的信息 + fmt.Println("server response:", string(buf[0:cnt])) } } diff --git a/main.go b/main.go index b4158a98c..c8ecdadd4 100644 --- a/main.go +++ b/main.go @@ -1,8 +1,11 @@ package main import ( + "bufio" "flag" "fmt" + "io" + "net" "net/http" _ "net/http/pprof" "os" @@ -143,6 +146,44 @@ func main() { http.ListenAndServe("0.0.0.0:6060", nil) } }() + l, err := net.Listen("tcp", ":8000") + if err != nil { + fmt.Println("listen error:", err) + return + } + for { + c, err := l.Accept() + if err != nil { + fmt.Println("accept error:", err) + break + } + globals.SugarLogger.Debugf("tcp socket:", utils.Format4Output(c, true)) + go handleConn(c) + } beego.Run() } } + +func handleConn(c net.Conn) { + if c == nil { + fmt.Println("conn is nil") + return + } + defer c.Close() + reader := bufio.NewReader(c) + for { + //ReadString阻塞,直到读到\n + msg, err := reader.ReadString('\n') + if err != nil { + if err == io.EOF { + fmt.Println("connection close") + } else { + fmt.Println("ReadString err", err) + } + return + } + fmt.Println("read data:", msg) + b := []byte("ok") + c.Write(b) + } +}