在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。
文章作者:沃航科技