服务器和客户端在golang中的传输之间的关系

时间:2015-11-02 13:45:49

标签: sockets http go server

我同时拥有 - 一个程序中的客户端和服务器。使用函数func Get(url string) ([]byte, error),我向其他服务器发出大量请求,我的服务器处理来自其他客户端的每秒一个请求。请求的功能是:

var transport = &http.Transport{}
func Get(url string) ([]byte, error) {
    req, err := http.NewRequest("GET", url, nil)
    if err != nil {
        return nil, err
    }

    var client = &http.Client{
        Transport: transport,
        Timeout:   15 * time.Second,
    }

    resp, err := client.Do(req)
    if resp != nil && resp.Body != nil {
        defer resp.Body.Close()
    }

    if err != nil {
        if resp != nil && resp.Body != nil {
            io.Copy(ioutil.Discard, resp.Body)
        }

        return nil, err
    }

    data, err := ioutil.ReadAll(resp.Body)
    return data, err
}

,服务器是:

func homePage(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "Hello")
}

http.HandleFunc("/", homePage)
http.ListenAndServe(":9002", nil)

所以,问题是 - 为什么我的服务器开始等待,而我的客户端在启动之前将所有请求发送到其他服务器处理其他客户的请求?我错过了什么? CPU没问题,内存没问题,带宽还可以。

0 个答案:

没有答案