func main() { runtime.GOMAXPROCS(runtime.NumCPU()) // creates a tcp listener tcpAddr, err := net.ResolveTCPAddr("tcp4", ":23") checkError(err) listener, err := net.ListenTCP("tcp", tcpAddr) checkError(err) // creates a server config := &gotcp.Config{ PacketSendChanLimit: 20, PacketReceiveChanLimit: 20, } srv := gotcp.NewServer(config, &telnet.TelnetCallback{}, &telnet.TelnetProtocol{}) // starts service go srv.Start(listener, time.Second) fmt.Println("listening:", listener.Addr()) // catchs system signal chSig := make(chan os.Signal) signal.Notify(chSig, syscall.SIGINT, syscall.SIGTERM) fmt.Println("Signal: ", <-chSig) // stops service srv.Stop() }
func main() { runtime.GOMAXPROCS(runtime.NumCPU()) //l4g.AddFilter("file", l4g.FINE, l4g.NewFileLogWriter("server.log", false)) // creates a tcp listener l4g.LoadConfiguration("./conf/log4go.xml") tcpAddr, err := net.ResolveTCPAddr("tcp4", ":8989") checkError(err) listener, err := net.ListenTCP("tcp", tcpAddr) checkError(err) defer l4g.Close() // creates a server config := &gotcp.Config{ PacketSendChanLimit: 20, PacketReceiveChanLimit: 20, } srv := gotcp.NewServer(config, &Callback{}, &echo.EchoProtocol{}) // starts service go srv.Start(listener, time.Second) l4g.Debug("listening: %s", listener.Addr()) //log.Println("listening:", listener.Addr()) // catchs system signal chSig := make(chan os.Signal) signal.Notify(chSig, syscall.SIGINT, syscall.SIGTERM, syscall.SIGUSR2) //, syscall.SIGINT, syscall.SIGTERM l4g.Trace("Signal: %s", <-chSig) //log.Println("Signal: ", <-chSig) // stops service srv.Stop() }