我目前在使用Golang 1.7.1时遇到问题 我的目的是从lib“crypto / tls”
创建一个带有TLS连接的池我的目的是通过TLS将stdin条目转发到网络。我正在用reader := bufio.NewReader(os.Stdin)
读取标准输入并循环播放它。在循环之前我尝试创建池。
我关注了来自https://github.com/fatih/pool
的TCP池示例我的代码示例:
factory := func() (tls.Conn, error) {
log.Println("************** factory start :) :() **************")
conn, err := tls.Dial("tcp", "discover.logs.ovh.com:12202" , &tls.Config{
InsecureSkipVerify: true, })
if err != nil {
panic(err)
}
log.Println("************** factory stop :) **************")
return *conn, err
}
p, err := NewChannelPool(3, 10, factory)
if err != nil {
panic(err)
}
reader := bufio.NewReader(os.Stdin)
log.Println("NewReader done")
for {
line, overflow, err := reader.ReadLine()
if err == io.EOF {
/*err = p.Close()
if err != nil {
log.Fatal(err)
}*/
os.Exit(0)
}
......
......
......
conn, err := p.Get()
if err != nil {
log.Fatal(err)
}
bytes, err := conn.Write(databytes)
if err != nil {
log.Fatal(err)
}
conn.Close()
}
tls / tcp lib(除了安全部分)之间的主要区别是Dial return *tls.Conn
和tcp tcp.Conn
所以我认为通过返回* conn我做得很好,我返回指针指向的对象。
当我开始第二次连接时,我总是被这个错误打开:
journald-gateway_1 | 2016/12/13 16:19:20 socat [15] E写(6,0x55fc5a73db80,1006):管道坏了
任何想法?
感谢您阅读我。