gost_software/tcp/server.go
2017-07-20 23:36:09 +08:00

42 lines
620 B
Go

package tcp
import (
"net"
"github.com/ginuerzh/gost"
"github.com/ginuerzh/gost/server"
)
type nodeServer struct {
options *server.Server
}
func (s *nodeServer) Init(opts ...server.Option) {
for _, opt := range opts {
opt(s.options)
}
}
func (s *nodeServer) Options() *server.Options {
return s.options
}
func (s *nodeServer) Run() error {
ln, err := net.Listen("tcp", s.options.Addr)
if err != nil {
return err
}
defer ln.Close()
for {
conn, err := ln.Accept()
if err != nil {
return err
}
go func(c net.Conn) {
defer c.Close()
gost.DefaultHandler(s).Handle(conn)
}(conn)
}
}