Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 16:02   #1
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
Вопрос idHTTP проблемы

перестал работать idHTTP

Код:
edit1.text:=idHTTP1.Get('google.ru');
выдает ошибку:socket Error # 10054 Connection reset by peer

раньше все работало. думал это из за делфи кровой, скомпилил на другой машине - такая же проблема. тестил на разных машинах но результат один и тот же. В чем проблема и как исправить?
P.S. На всех машинах, на которых проводились испытания, стоит XP zver
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 09.10.2010, 19:30   #2
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

А так?

edit1.text:=idHTTP1.Get('http://google.ru');
Voody вне форума Ответить с цитированием
Старый 09.10.2010, 21:37   #3
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

да в общем такая ж проблема, я так думаю тут проблема или в портах или в драйвере сетевой платы. че т такое. в общем не indy виноват
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 09.10.2010, 23:28   #4
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
socket Error # 10054 Connection reset by peer
У меня кажется такое же было... Означает мол "Сервер разорвал с вами соединение"... Попросту говоря послал вас лесом...

Попробуйте после подобной ошибки такое делать: idHTTP1.Socket.Close;
I am the First of Cyber Evolution...
I am the First to Program your Future...

Последний раз редактировалось DomiNick; 10.10.2010 в 17:07. Причина: Кнопки оформления сообщения заработали, спасибо... :)
DomiNick вне форума Ответить с цитированием
Старый 10.10.2010, 16:43   #5
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
Радость

Прикиньте, ни че не менял. код не перекомпилировал ни че не делал. только на винде пароль поставил к учетке... больше ни че не менял и... РАБОТАЕТ!!!!!!! ппц какой то
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 10.10.2010, 17:03   #6
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

надо с www писать, тогда гугля будет отдавать страницу
http://www.google.ru/

Без www:
• запрос HEAD долго идёт
• запрос GET нормально

C www:
• запрос HEAD нормально
• запрос GET нормально
Alter вне форума Ответить с цитированием
Старый 10.10.2010, 18:32   #7
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Восклицание

Рассказываю подробнее...

Моя программа раз в секунду "тырила" html-страницу с сайта через idHTTP1 (зачем не важно )...
Через некоторое время вместо скачивания страницы вылазало такое окно: "socket Error # 10054 Connection reset by peer"...
Заметил я его не сразу: меня у компа долго не было, а после "энного" такого окна программа просто вылетает без следов (а я когда вернулся долго недоумевал - мол кто прогу закрыл в моё отсутствие?)...
Стал разбираться что за зверь, выяснилось в справке:
Цитата:
WSAECONNRESET (10054) - Connection reset by peer.
An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, or the remote host uses a hard close (see setsockopt for more information on the SO_LINGER option on the remote socket.) This error may also result if a connection was broken due to keep-alive activity detecting a failure while one or more operations are in progress. Operations that were in progress fail with WSAENETRESET. Subsequent operations fail with WSAECONNRESET.
Как я понял серверу просто надоело что я всё время "тырю" страницу и он меня послал - "Удаленный хост принудительно разорвал существующее подключение."...

Так что эта ошибка зависит не сколько от программы, сколько от сервера... Я её вот таким финтом частично "вылечил", если так можно выразиться:
Код:
iPage:='';
Try
      iPage:=Utf8ToAnsi(IdHTTP1.Get('http://'+iSite+'/'+iPath+'/'+iFile));
      Form1.Caption:='Success.';
      // do something with "iPage"
Except
      mciSendString('play e:\error.mp3', Nil, 0, 0);
      Form1.Caption:='Connection error.';
      IdHTTP1.Socket.Close;
      End;
Цитата:
надо с www писать, тогда гугля будет отдавать страницу
Хм... Я замечал что с разными сайтами по-разному может получаться...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 11.10.2010, 19:12   #8
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Разные сайты, разные заморочки
Alter вне форума Ответить с цитированием
Старый 18.03.2013, 12:17   #9
tjobs
Новичок
Джуниор
 
Регистрация: 18.03.2013
Сообщений: 1
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
Я её вот таким финтом частично "вылечил", если так можно выразиться:
Код:
iPage:='';
Try
      iPage:=Utf8ToAnsi(IdHTTP1.Get('http://'+iSite+'/'+iPath+'/'+iFile));
      Form1.Caption:='Success.';
      // do something with "iPage"
Except
      mciSendString('play e:\error.mp3', Nil, 0, 0);
      Form1.Caption:='Connection error.';
      IdHTTP1.Socket.Close;
      End;

Хм... Я замечал что с разными сайтами по-разному может получаться...
Такая же проблема - работает 1 - 2 дня, затем начинает выдавать ошибку сокета 10054, если ставить

IdHTTP1.Socket.Close;

То выдает ошибка HTTP/1.1 400 Bad Request

т.е. по сути вместо 10054 ошибки, стала выскакивать 400 ошибка. Причем выскакивает не сразу, а в тоже время когда выскакивала бы ошибка 10054

IdHttp.Disconnect так же использую.

Перезагружаю программу, снова работает 1 - 2 дня и опять тоже самое.

Судя по всему закрытие сокета полечило ошибку 10054, но стала появлятся ошибка 400 - т.е. все равно что - то слетает.

Уже весь интернет перерыл - толком никто не знает в чем может быть проблема..

Может кто знает, как исправить?

Версия Indy 10.0.92
Версия IdHttp: 1.65

Последний раз редактировалось tjobs; 18.03.2013 в 12:50.
tjobs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с куками в idhttp Marsik Работа с сетью в Delphi 5 12.01.2011 14:01
Проблемы с IdHTTP.Post() ! $T@LKER Работа с сетью в Delphi 30 03.09.2010 17:03
idhttp проблемы с кодировкой пауэрлифтинг Работа с сетью в Delphi 3 10.03.2010 17:35
idHTTP DeDoK Общие вопросы Delphi 5 05.06.2008 22:45
Проблемы с IdHTTP satana Работа с сетью в Delphi 2 31.08.2007 09:12