45 lines
744 B
Go
45 lines
744 B
Go
package main
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"fmt"
|
|
"log"
|
|
"net"
|
|
)
|
|
|
|
type Server struct {
|
|
Host string
|
|
Port string
|
|
Name string
|
|
SSL bool
|
|
Conn net.Conn
|
|
Logger log.Logger
|
|
}
|
|
|
|
func NewServer(host, port, name string, ssl bool, logger log.Logger) *Server {
|
|
return &Server{
|
|
host,
|
|
port,
|
|
name,
|
|
ssl,
|
|
nil,
|
|
logger,
|
|
}
|
|
}
|
|
|
|
func (s *Server) Connect() error {
|
|
var conn net.Conn
|
|
var err error
|
|
|
|
if s.SSL {
|
|
conn, err = tls.Dial("tcp", fmt.Sprintf("%s:%s", s.Host, s.Port), nil)
|
|
} else {
|
|
conn, err = net.Dial("tcp", fmt.Sprintf("%s:%s", s.Host, s.Port))
|
|
}
|
|
if err != nil {
|
|
return err
|
|
}
|
|
s.Conn = conn
|
|
return nil
|
|
}
|