在web开发中经常会遇到需要直接读取http的文本的数据的情况,考虑到http本来就是基于tcp的协议,因此只需要启动一个tcp程序,然后将渡到的程序直接输出即可。小沃最近写了一个小工具用于打印tcp数据,考虑到小工具,自然想到单文件最方便啊,因此小沃依旧是使用golang写的,代码如下:
package main import ( "fmt" "net" "os" ) func connectHandler (conn net.Conn) { buf := make([]byte, 1024) for { count, err := conn.Read (buf) if count == 0 || err != nil { return } fmt.Println (string(buf[:count])) } } func main() { port := "32236" args := os.Args argslen := len (args) for i := 0 ; i < argslen ; i++ { if args[i] == "-p" { port = args[i+1] } } server, err := net.Listen("tcp", ":" + port) if err != nil { fmt.Println("开启socket服务失败") return } fmt.Println("开启socket服务成功") fmt.Println("listen port:" + port) for { conn, err := server.Accept() if err != nil { continue } go connectHandler (conn) } }
本工具就只有一个参数-p,用于指定监听的端口,不写的话默认为32236。
文章作者:沃航科技