예제 #1
0
파일: server.go 프로젝트: repos-go/falcore
func (srv *Server) socketListen() os.Error {
	var la *net.TCPAddr
	var err os.Error
	if la, err = net.ResolveTCPAddr("tcp", srv.Addr); err != nil {
		return err
	}

	var l *net.TCPListener
	if l, err = net.ListenTCP("tcp", la); err != nil {
		return err
	}
	srv.listener = l
	if srv.listenerFile, err = l.File(); err != nil {
		return err
	}
	if e := syscall.SetNonblock(srv.listenerFile.Fd(), true); e != 0 {
		return os.Errno(e)
	}
	l.SetTimeout(3e9)
	return nil
}