This commit is contained in:
suyl
2021-06-15 16:36:09 +08:00
parent 29248dae3b
commit 4f41f766fe

View File

@@ -1,36 +1,37 @@
package cms
import (
"bufio"
"fmt"
"io/ioutil"
"net"
"net/http"
"time"
"os"
"strings"
)
func TestTemp() {
var HTTPTransport = &http.Transport{
DialContext: (&net.Dialer{
Timeout: 30 * time.Second, // 连接超时时间
KeepAlive: 60 * time.Second, // 保持长连接的时间
}).DialContext, // 设置连接的参数
MaxIdleConns: 500, // 最大空闲连接
IdleConnTimeout: 60 * time.Second, // 空闲连接的超时时间
ExpectContinueTimeout: 30 * time.Second, // 等待服务第一个响应的超时时间
MaxIdleConnsPerHost: 100, // 每个host保持的空闲连接数
}
uri := "http://print.jxcs.net:8000"
start2 := time.Now()
client2 := http.Client{Transport: HTTPTransport} // 初始化一个带有transport的http的client
req, err := http.NewRequest(http.MethodGet, uri, nil)
conn, err := net.Dial("tcp", "print.jxcs.net:8000")
if err != nil {
panic("Http Req Failed " + err.Error())
fmt.Println("client err=", err)
return
}
resp, err := client2.Do(req)
if err != nil {
panic("Http Request Failed " + err.Error())
defer conn.Close() // 关闭连接
//客户端可以发送单行数据
reader := bufio.NewReader(os.Stdin)
for {
input, err := reader.ReadString('\n')
if err != nil {
fmt.Println("readstring err=", err)
}
inputInfo := strings.Trim(input, "\r\n")
//fmt.Println(inputInfo)
if strings.ToUpper(inputInfo) == "Q" { // 如果输入q就退出
return
}
//将line发送给服务器
_, err = conn.Write([]byte(inputInfo))
if err != nil {
fmt.Println("conn.write err=", err)
}
}
defer resp.Body.Close()
ioutil.ReadAll(resp.Body) // 如果不及时从请求中获取结果,此连接会占用,其他请求服务复用连接
fmt.Println("Orig GoNet Long Link", time.Since(start2))
}