# File lib/fake_ftp/server.rb, line 62
    def start
      @started = true
      @server = ::TCPServer.new('127.0.0.1', port)
      @port = @server.addr[1]
      @thread = Thread.new do
        while @started
          @client = @server.accept rescue nil
          if @client
            respond_with('220 Can has FTP?')
            @connection = Thread.new(@client) do |socket|
              while @started && !socket.nil? && !socket.closed?
                input = socket.gets rescue nil
                respond_with parse(input) if input
              end
              unless @client.nil?
                @client.close unless @client.closed?
                @client = nil
              end
            end
          end
        end
        unless @server.nil?
          @server.close unless @server.closed?
          @server = nil
        end
      end

      if passive_port
        @data_server = ::TCPServer.new('127.0.0.1', passive_port)
        @passive_port = @data_server.addr[1]
      end
    end