Golang中国
import (
        "bytes"
        "fmt"
        "net"
)

    var connMax int = 0

    func CheckErr(err error) {
        if err != nil {
            fmt.Fprintf(os.Stderr, "Error occured: %s\n", err)
            os.Exit(1)
        }
    }


    func handler(conn net.Conn) {
        defer conn.Close()

        var buf [512]byte

        n, err := conn.Read(buf[0:])
        CheckErr(err)

        connMax += 1
        fmt.Println(connMax)

        result := bytes.NewBuffer(nil)
        result.Write(buf[0:n])

        fmt.Println(string(result.Bytes()))

        conn.Write([]byte("HTTP/1.1 201 OK\r\n"))

    func Run() {
        ln, err := net.Listen("tcp", ":8080")
        CheckErr(err)
        for {
            conn, err := ln.Accept()
            CheckErr(err)

            go handler(conn)
        }
    }

用ab测试:

ab -c 1500 -n 10000 http://127.0.0.1:8080/

我发现当测试完成的时候,会出现EOF error,所以执行了退出。
enter image description here


jimmykuu 于 2016-04-11 14:06 修改
1 回复
bigbear
#1 bigbear • 2016-04-11 13:34

eof表示读到结尾了, 没的读了, 所以你就继续干别的事情啊, 有什么问题呢?

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。