Я подключаюсь к веб-службе и не устанавливаю ни одного таймаута подключения и тайм-аута чтения на HttpURLConnection. Каков тайм-аут подключения по умолчанию и тайм-аут чтения? Это зависит от телефона Android? Или у Android/Java есть собственное значение по умолчанию для тайм-аута?
Когда я пытаюсь получить значение моего таймаута подключения (getConnectTimeout()) и таймаута чтения (getReadTimeout()), он возвращает значение 0, которое, как я полагаю, эквивалентно бесконечности. Однако, хотя их значение равно 0, иногда я получаю ошибку тайм-аута запроса. Поэтому их значение не может быть равно бесконечности. Может кто-нибудь просветить меня на этом?
3 ответов
Вы проводили какие-либо исследования? Параметры по умолчанию подробно описаны в документации . Здесь соответствующие части:
public void setConnectTimeout (int timeout) Поскольку: Уровень API 1
Устанавливает значение таймаута в миллисекундах для установления соединения к ресурсу, указанному этим экземпляром URLConnection. SocketTimeoutException вызывается, если соединение не может быть установленный в это время.
public void setReadTimeout (int timeout) Поскольку: Уровень API 1
Устанавливает значение таймаута в миллисекундах для чтения с ввода поток установленного соединения с ресурсом. SocketTimeoutException вызывается, если соединение не может быть установленный в это время. Значение по умолчанию равно 0, что означает бесконечность тайм-аут.
Также есть эта заметка о таймаутах:
URLConnection поддерживает два тайм-аута: тайм-аут подключения и время ожидания чтения. По умолчанию операции никогда не заканчиваются.
Возможно, сервер, к которому вы подключаетесь, отключает ваш клиент.
Если вы получаете сообщение (именно при запуске программы, или при подключении к хабам ):
ВОЗМОЖНЫЕ ПРИЧИНЫ (первая -- наиболее вероятная):
Если вы получаете сообщение: "Удаленный хост принудительно разорвал существующее подключение." -- это значит, что физически прервалась связь. Обрезали провод, выключили хаб, или просто потери пакетов в линии. Попробуйте переподключиться снова. Если не помогает -- возможно это проблема в сети, либо "шалит" ваш фаервол, смотрите его логи. Попробуйте также отключить firewall полностью и посмотреть, что будет (подробнее о фаерволах читайте ниже).
Если у вас всё качалось, а потом вдруг перестало - вспомните, какие программы вы устанавливали в этот период времени. Вполне вероятно, дело именно в них. Но если вы ничего с компьютером не делали - просто так ничего работать обычно не перестаёт.
Если Вы ставите на скачивание файл (или список файлов), он появляется снизу в списке закачек, и DC++ пишет Соединение... (Connecting... ), размер -1B и ничего не происходит. Или же он пишет "connection timeout" (таймаут соединения). Значит у вас что-то не так настроено.
Аналогично, если у вас не работает поиск файлов, значит тоже имеются проблемы с настройкой DC++ или других программ.
Проверьте возможность скачки с пассивных пользователей. Если скачка с них идет нормально, значит скорее всего проблема в Вашем фаерволе. Нужно открыть 4000 порт по протоколу UDP.
Прочитайте предыдущий ответ... Обращу ваше внимание на то что поиск работает по протоколу UDP, а скачка по TCP. По этому возможно что вы в своем фаерволе разрешили DC клиенту работать по 4000 порту TCP, а 4000 порт по UDP разрешить забыли... вот он и не работает. Других вариантов особо нет, по этому смотрите свой фаервол.
Часто работа DC++ блокируется FireWall-ом (Фаерволл, Брандмауэр) - программой, которая защищает компьютер от атак из сети, или антивирусными программами .
Если у Вас не установлено firewall-ов, и операционная система Windows XP SP2 или Vista : добавьте DC++ в список исключений брэндмауэра Windows: при первом запуске программы (точнее, при подключении к хабу) Windows спросит вас, разрешать подключение или нет. Вы должны сказать ему "разрешить" ("unblock").
Прочие "вредоносные" программы
Ниже приведён перечень программ, которые могут влиять на работу DC++. Если у вас имеются проблемы с DC++ и установлена одна их них --- полностью отключите её или деинсталлируйте (просто для того чтобы убедиться, что дело именно в ней). Если снос программы не поможет -- значит мешает что-то ещё.
Итак, проверьте, нет ли у вас чего-нибудь из перечисленного:
Антивирусы:
Касперский (Антивирус, АнтиХакер, Internet Security), Eset NOD32, Symantec (Norton AntiVirus, Internet Security),
Trend PC-Cillin, Avast, McAfee Antivirus.
FireWall-ы:
Outpost, WinGate, UserGate, WinProxy, WinRoute, ZoneAlarm, Comodo.
Большинство этих программ имеют возможность полного отключения. Для проверки того, что проблемы в DC++ вызваны именно ими, отключите их, перезапустите DC++ и проверьте снова. Часто помогает добавление DC++ в список исключений firewall-а.
Для подключения к хабу сайт должен быть открыт 4111 -й TCP-порт и 4000 порты на любые адреса. Многие firewall-ы предоставляют возможность открыть конкретные порты для соединений DC++.
Владельцам компьютеров с материнскими платами на чипсете nForce4 рекомендуем в случае наличия проблем отключить аппаратный firewall, встроенный интегрированную в сетевую плату (nVidia Firewall ).
Если у вас не скачиваются большие файлы (программа пишет, что нет места не диске), проверьте что диск, на который идёт закачка, имеет файловую систему NTFS, так как FAT не работает с файлами более 2Гб. Если у вас FAT32, то имеет смысл отконвертировать диск в NTFS. Делается это с помощью комманды консоли командой convert X: /FS:NTFS
Вместо X: дожна быть буква того диска, который Вы преобразуете. Если он слишком заполнен, то преобразование невозможно. После этого он попросит ввести метку диска (посмотреть ее можно в свойствах диска):
Преобразование происходит не мгновенно, оно занимает некоторое время (обычно несколько минут). При этом все данные на диске сохраняются (не выключайте питание во время конвертации!)
Примечание: (для более продвинутых!) если у вас не хватает места для конвертации, но раздел на диске не единственный, и вам нужно изменить размер разделов диска, скачайте или найдите в сети программу Acronis Disk Director Suite 10.0 (Оф. сайт) и выполните преобразование с ее помощью. Как ею пользоваться, разберетесь... там всё просто. Устанавливаете, запускаете, если она спросит про "manual partition mode" и "automatic partition mode", выберите "manual", дальше она покажет вам ваши диски и разделы... Жмёте ПКМ на раздел, там его можно "преобразовать" ("convert") или изменить размер ("resize")... Следуйте её инструкциям. На всякий случай, если не знаете английский, возьмите словарь и переведите, что она Вам пишет. Программа небезопасная, ею можно угрохать весь диск и все данные в два счета, если просто тупо нажимать OK, или ту кнопку, которая ближе. ;-) Кстати, эта же программа умеет делать почти всё что угодно с дисками, начиная от дефрагментации и заканчивая созданием новых разделов с любой наперед заданной файловой системой.
Иногда бывает так: файл скачивается, но остаётся в папке с незавершенными закачками и странным (искаженным) именем. Судя по всему это баг DC++. Проявляется оно тогда, когда папки Incomplete и Downloads находятсяна РАЗНЫХ разделах (например, одна на C: , вторая на D: ). В таких случаях можно попробовать сделать вот что: остановить закачку этого файла (Ctrl+D, и там в списке его убрать, если он ещё там висит), после чего насильственно переименовать файл. Если к примеру это фильм, то даже отсутствие 200-300 кб не помешает. Но обычно при таких глюках файл таки докачивается полностью, просто почему-то DC++ не может его перенести. Но если после переименования файл не открывается -- лучше удалите его и перезакачайте заново.
Найдено и вроде бы опробировано решение проблемы: настроить папки incomplete и папки для закачек так, чтобы они ссылались на ОДИН И ТОТ ЖЕ раздел диска. Можно для простоты установить их на одну и ту же директорию.
......, *** Connection timeout
Или хаб временно отключен, или у вас в данный момент сломалась сетка, или вы не разрешили ДС++ клиент в Файерволле.
...Connection refused by target machine(отказанно в доступе)
а) Ваш файерволл блокирует ДС клиент. Настройте или удалите его(обязательно перезагрузите комп после удаления)
б) Сервер где расположен хаб работает, но сам Хаб не включён.
...You are still temporary banned for another 00:05:00
Вас кикнули/забанили - хаб скажет, скока осталось до "автопрощения"
...Bad nickname. Nickname already in use (Ник уже занят)
Глюк ДС++.Значит что ваше имя уже используется на Хабе. Скорее всего это ваша "тень". Просто измените ник на "ВашНик1" и входите. Со временем "тень" исчезнет. (бывает если вы выключили
...Turn on your tags!
Ваш клиент отличен от оригинального ДС++, поэтому Хаб может не пускать его к себе. В настройках клиента найдите "емулировать(притвориться) стандартным клиентом ДС++"
Поскольку в Windows Vista был введен механизм защиты файлов в директориях "Program Files", клиенты DC++ не могут изменить свой конфиг для корректной работы. Это вызывает зависание и глюки.
Для корректной работы запускайте клиент с привилегиями администратора:
Щелкните правой кнопкой по ярлыку клиента, выберите свойства:
Перейдите на вкладку совместимость, и выставите флажок в поле "Запускать от администратора":
В появившемся окне вы можете выбрать:
Если Вы укажете "Начать поиск этого файла", то будет произведен поиск по пользователям, которые сейчас подключенны к серверу. Но так как файл может находиться у пользователей, которые сейчас не подключены к серверу, то реккомендуем выбирать "Добавить этот файл в очередь". Тогда файл добавиться к Вам в очередь и скачивание начнется сразу, как только пользователь имеющий этот файл пояаится в сети.
Ошибка 504 Gateway Timeout – это код состояния HTTP , который означает, что один сервер не получил своевременный отклик от другого сервера, к которому он обратился, пытаясь загрузить веб-страницу или выполнить запрос браузера. Она может возникать вместе с 502 Bad Gateway .
Другими словами, ошибка 504 указывает на то, что у сервера, на котором расположен сайт и у компьютера, на котором выскакивает ошибка 504, отсутствует стабильное достаточно быстрое соединение с интернетом.
Отдельным сайтам разрешено настраивать отображение ошибки Gateway Timeout . Вот несколько распространенных способов вывода подобной ошибки:
504 Gateway Timeout HTTP 504 504 ERROR Gateway Timeout (504) HTTP Error 504 - Gateway Timeout Gateway Timeout Error
Ошибка 504 Gateway Timeout появляется внутри окна браузера, как обычная веб-страница. На ней могут быть знакомые верхние и нижние колонтитулы сайта и красивое английское сообщение. Также подобная ошибка может отображаться на полностью белой странице с большой цифрой 504 вверху. Это одно и то же сообщение, независимо от того, как сайт показывает его вам.
Помните, что ошибка 504 Gateway Timeout и 502 Bad Gateway ngin может появиться в любом браузере, операционной системе и на любом устройстве.
В большинстве случаев ошибка 504 Gateway Timeout означает, что любой сервер, который выдает «тайм-аут », «упал » или неправильно работает.
Поскольку эта ошибка обычно возникает между серверами в интернете, то, вероятно, она не связана с вашим компьютером, устройством или интернет-соединением.
Несмотря на то, что 504 Gateway Timeout и ошибка 502 Bad Gateway сообщает о неподконтрольной вам ошибке, проблема может быть временной. Просто перезагрузите страницу — это быстро и легко.
Подсказка : При том, что порядок выключения этих устройств не важен, порядок включения их наоборот очень важен.
Подсказка . Смотрите Proxy.org обновленный, проверенный список прокси-серверов, которые можно использовать.
Примечание . Большинство компьютеров не имеют настроек прокси-сервера, поэтому, если ваши настройки пусты, пропустите этот шаг.
Примечание . DNS-сервер , используемый сейчас, вероятно, автоматически назначается вашим провайдером. К счастью, для использования доступны другие DNS-сервера , которые можно выбрать.
Подсказка . Если не все сетевые устройства получают ошибку HTTP 504 или 502 error Bad Gateway , но все они находятся в одной сети, изменение DNS-сервера не сработает. Если это похоже на вашу ситуацию, переходите к следующей идее.
На большинстве сайтов есть учетные записи социальных сетей, которые они используют для поддержки. А некоторые даже имеют номера телефонов и адреса электронной почты.
Подсказка . Если начинает казаться, что сайт выдает 504 ошибку для всех, поищите в Twitter в режиме реального времени информацию о недоступности сайта. Лучший способ сделать это — найти #websitedown в Twitter . Например, если Facebook может быть недоступен, выполните поиск по тегу #facebookdown .
Регулярно проверяйте сайт. Без сомнения, он снова начнет работать.
В большинстве случаев это происходит не по вашей вине, но и не по вине пользователей вашего ресурса. Начните с проверки того, что сервер может правильно предоставлять доступ ко всем доменам, к которым требуют доступ ваши приложения.
Большие объемы трафика могут привести к тому, что ваш сервер будет выдавать ошибку 504 . Хотя 503 или ошибка 502 Bad Gateway будет более вероятна.
В частности, в WordPress сообщение 504: Gateway Timeout иногда возникает из-за поврежденных баз данных. Установите WP-DBManager и попробуйте применить функцию «Восстановить БД », а затем «Оптимизировать БД ». Посмотрите, поможет ли это.
Убедитесь, что ваш файл HTACCESS правильный. Особенно если вы только что переустановили WordPress .
Свяжитесь с технической поддержкой хостинга. Возможно, ошибка 504 , возвращаемая вашим сайтом, связана с проблемой на их стороне, которую они должны решить.
Ошибка Gateway Timeout при получении в Windows Update генерирует код ошибки 0x80244023 или сообщение WU_E_PT_HTTP_STATUS_GATEWAY_TIMEOUT .
В программах на базе Windows , которые изначально обращаются к интернету, ошибка 504 может отображаться в небольшом диалоговом окне или окне с ошибкой HTTP_STATUS_GATEWAY_TIMEOUT и/или сообщение The request was timed out waiting for a gateway (истекло время ожидания запроса для шлюза ).
Менее распространенная ошибка 504 — это Gateway Time-out: The proxy server did not receive a timely response from the upstream server (прокси-сервер не получил своевременного ответа от вышестоящего сервера ), но поиск и устранение неисправностей (указанных выше ) продолжается.
Если у вас возникают проблемы с закачкой или поиском файлов (вроде, всё делаете как надо, а ничего не качается или поиск выдаёт пустой список), уясните себе, что хаб DC (сервер) тут совершенно не при чем. Передача файлов происходит напрямую от клиента к клиенту, поэтому помехи могут быть только на пути между клиентами.
Симптомы обычно такие: вы ставите файл (или список файлов) на закачку, ждёте, ждёте, ... а ничего не происходит, а потом DC пишет про "таймаут соединения":
Помните, что правильная настройка самого DC-клиента ещё не означает правильной настройки системы, сети и других приложений, которые могут влиять на DC++.
Вариантов проблем тут по сути всего три (первый - наиболее частый):
Если у вас не прямое подключение компьютера к сети, а через роутер (маршрутизатор), то настройки могут отличаться. А если у вас провод от провайдера втыкается прямо в комп, то проверьте, что у вас включен активный режим передачи файлов (Файл - Настройки - Настройки соединения ):
Остальные настройки DC++ на сетевые соединения никак не влияют. Так что если у вас тут всё выбрано как на картинке, значит проблема наверняка не в настройка клиента (то есть, читайте дальше).
Ниже перечислено то, что может отрицательно влиять на работу DC++.
Если вы не знаете, что это такое, ниже приведен перечень популярных программ такого типа:
Антивирусы
: Касперский (Антивирус, АнтиХакер, Internet Security), Eset NOD32, Symantec (Norton AntiVirus, Internet Security),
Trend PC-Cillin, Avira Avast, DrWeb, McAfee Antivirus, Panda.
Firewall-ы
: Outpost, WinGate, UserGate, WinProxy, WinRoute, ZoneAlarm, Comodo.
Что же касается аппаратных firewall-ов, пока нам известен только nVidia firewall
, встроенный в
материнские платы на чипсетах nVidia N-Force
. Как его отключить читайте руководство по материнской плате.
Как быть, если у вас есть перечисленные программы или им аналогичные? Для начала вы можете попробовать полностью их отключить или настроить так, чтобы они не блокировали сетевые соединения (либо совсем все, либо те, которые создаются приложением DC++. Даже если вы боитесь отключать защиту - вы можете сделать это временно и проверить, что причина того, что DC++ не работает, была именно в данной программе. Причем подойдите к вопросу творчески, поэкспериментируйте с настройками вашего фаерволла или антивируса и добейтесь того, чтобы он не блокировал DC.
К сожалению, опыт говорит о том, что такие антивирусы, как NOD32 и Norton (Symantec) Internet Security обладают следующим неприятным свойством: даже полное их отключение (а в некоторых случаях - деинсталляция) на самом деле полным не является и всё равно создаёт помехи в работе DC++. Способов борьбы с этим (кроме самых радикальных вроде переустановки чистой системы) нам пока неизвестно. Причины кроются в некорректной работе этих программ и/или их деинсталляторов, повлиять на которые у пользователя возможности нет.
Для подключения к хабу в DC++ обычно используется 411 TCP-порт (зависит от настроек самого хаба, но на большинстве хабов он именно такой). В активном режиме DC++ использует многие порты для соединений с юзерами; в режиме ручного перенаправления - только тот порт, который указан в настройках.
Если НИЧЕГО из перечисленного не помогает:
Остаются только радикальные меры: переустановить "чистую" винду без лишних программ защиты. Многим пользователям оно кстати совершенно не повредит. Поверьте, потратить даже три часа на полную переустановкиу системы - это быстрее, чем три дня искать причину неработоспособности чёрт знает в какой программе. При том не советуе пользоваться "самосборками" Windows - они тоже бывают весьма "кривые", и гарантировать бесперебойную работу DC на этих системах вам никто не будет (благо опять-таки, есть печальный опыт наступания пользователей на эти грабли).
Разумеется, те же самые 2 порта (2000 TCP и 2000 UDP) должны быть разрешены на вход/выход в настройках фаерволла.
Подробное описание многих файрволлов (немного старое, но не потерявшее актуальности) и их настройки есть .
Встроенная сетевая защита ОС Windows XP SP2, Windows 2003, Windows Vista настраивается достаточно просто - достаточно добавить FlyLinkDC.exe в список исключений брендмауэра. Обычно при первом запуске DC++ система спросит вас, разрешать или не разрешать соединения:
В Vista сообщение выглядит иначе:
Нажимаете кнопку Unblock (Разрешить ). Тем самым вы добавите DC++ в список исключений. Если вы этого не сделали при первом запуске, можете сделать это в лббой момент: зайдите в Панель управления/Control Panel, Центр обеспечения безопасности/Windows Security Center, Брэндмауэр/Windows Firewall - и там на вкладке "Исключения" добавьте FlyLinkDC.exe . Вот соответствующие картинки: (нажмите на них для увеличения):
После этого всё должно работать.