Android: Как проверить, доступен ли сервер?

Моя исследовательская работа включает работу над компиляторами и над фильтрацией спама. Я также делаю большую 'персональную производительность' материал Unix. Плюс я пишу и использую программное обеспечение для администрирования классов, которые я преподаю, который включает классификацию, тестируя студенческий код, отслеживая классы и несметное число другие мелочи.

  1. Многоядерный не влияет на меня нисколько за исключением проблемы исследования для компиляторов для поддержания других приложений. Но те проблемы заключаются, прежде всего, в системе во время выполнения, не компиляторе.
  2. В большой проблеме и расходе, Dave Wortman показал приблизительно в 1990, что Вы могли параллелизировать компилятор для хранения четырех процессоров занятыми . Никто, которого я, никогда знаю не повторял эксперимент. Большинство компиляторов достаточно быстро для выполнения однопоточный. И намного легче запустить Ваш последовательный компилятор на нескольких файлах другого источника параллельно, чем это должно заставить Ваш компилятор сам быть параллельным. Для фильтрации спама изучение является по сути последовательным процессом . И даже более старая машина может изучить сотни сообщений в секунду, поэтому даже большой корпус может быть изучен менее чем через минуту. Снова, обучение достаточно быстро .
  3. единственный значительный способ, которым я имею использования параллельных машин, , параллель использования делает . Это - большое благо, и , большие сборки легко параллелизировать . Сделайте делает почти всю работу автоматически. Единственная другая вещь, которую я могу помнить, использует параллелизм для времени продолжительный студенческий код путем сдавания его в аренду к набору машин лаборатории, которые я мог сделать в хорошей совести, потому что я только ударял одноядерное на машину, таким образом с помощью только 1/4 ресурсов ЦП. О, и я записал сценарий Lua, который будет использовать все 4 ядра при разрыве файлов MP3 с Ламе. Тот сценарий был большой работой для разбираний.
  4. я буду игнорировать десятки, сотни и тысячи ядер . В первый раз мне сказали "параллельные машины, прибывают; необходимо подготовиться", был 1984. Это было верно тогда и верно сегодня, что параллельное программирование является доменом для высококвалифицированных специалистов . Единственная вещь, которая изменилась, состоит в том, что сегодня производители вынуждают нас заплатить за параллельные аппаратные средства , хотим ли мы его или нет. Но просто, потому что аппаратные средства оплачивают, не означает, что это свободно использовать. модели программирования ужасны, и создание работы модели потока/взаимного исключения , уже не говоря о работают хорошо, дорогое задание, даже если аппаратные средства свободны. Я ожидаю, что большинство программистов проигнорирует параллелизм и бесшумно преуспеет об их бизнесе. Когда квалифицированный специалист приезжает с параллелью, делают или большая компьютерная игра, я бесшумно приветствую и использую их усилия. Если я захочу производительность для своих собственных приложений, то я сконцентрируюсь на [1 122] уменьшающие выделения памяти и проигнорирую параллелизм.
  5. Параллелизм действительно труден. домены Most трудно параллелизировать. Широко допускающее повторное использование исключение как параллель делает, причина для большой радости.

Сводка (который я получил известие от основного докладчика, который работает на ведущего производителя ЦП): промышленность отступила в многоядерный, потому что они не могли продолжать делать машины выполненными быстрее и более горячий, и они не знали, что сделать с дополнительными транзисторами. Теперь они отчаянно пытаются находить способ сделать многоядерным прибыльный, потому что, если у них нет прибыли, они не могут создать следующее поколение потрясающих строк. Поезд соуса закончен, и нам, возможно, на самом деле придется запустить уделение внимания затратам на программное обеспечение.

Многие люди, которые серьезно относятся к параллелизму, игнорируют эти игрушечные или даже машины с 32 ядрами с 4 ядрами в пользу GPU с 128 процессорами или больше. Мое предположение - то, что реальное действие будет там.

36
задан Guido 11 March 2010 в 14:03
поделиться

3 ответа

Ему, вероятно, нужен код Java, поскольку он работает над Android. Эквивалент Java, который, как мне кажется, работает на Android, должен быть:

InetAddress.getByName(host).isReachable(timeOut)
49
ответ дан 27 November 2019 в 05:37
поделиться

Вы работаете с HTTP? Затем вы можете установить тайм-аут для вашего HTTP-соединения, как таковой:

private void setupHttpClient() {
    BasicHttpParams httpParams = new BasicHttpParams();

    ConnManagerParams.setTimeout(httpParams, CONNECTION_TIMEOUT);
    //...

    ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(
            httpParams, schemeRegistry);
    this.httpClient = new DefaultHttpClient(cm, httpParams);
}

Если вы затем выполните запрос, вы получите исключение по истечении заданного тайм-аута.

2
ответ дан 27 November 2019 в 05:37
поделиться

О, нет, нет, код на Java не работает: InetAddress.getByName ("fr.yahoo.com"). IsReachable (200), хотя в LogCat я видел его IP-адрес (то же самое с 20000 мсек. тайм-аут).

Кажется, что использовать команду ping удобно, например:

Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("ping fr.yahoo.com -c 1"); // other servers, for example
proc.waitFor();
int exit = proc.exitValue();
if (exit == 0) { // normal exit
    /* get output content of executing the ping command and parse it
     * to decide if the server is reachable
     */
} else { // abnormal exit, so decide that the server is not reachable
    ...
}
0
ответ дан 27 November 2019 в 05:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: