github.com/glide-im/glide@v1.6.0/pkg/conn/tcp_server.go (about) 1 package conn 2 3 import "net" 4 5 type TcpServer struct { 6 handler ConnectionHandler 7 } 8 9 func NewTcpServer() *TcpServer { 10 return &TcpServer{} 11 } 12 13 func (t *TcpServer) SetConnHandler(handler ConnectionHandler) { 14 t.handler = handler 15 } 16 17 func (t *TcpServer) Run(host string, port int) error { 18 tcp, err := net.ListenTCP("tcp", &net.TCPAddr{ 19 IP: net.ParseIP(host), 20 Port: port, 21 }) 22 if err != nil { 23 return err 24 } 25 for { 26 acceptTCP, err := tcp.AcceptTCP() 27 if err != nil { 28 return err 29 } 30 conn := ConnectionProxy{ 31 conn: NewTcpConn(acceptTCP), 32 } 33 t.handler(conn) 34 } 35 }