aa
This commit is contained in:
@@ -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))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user