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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2009, 17:16   #1
Evgen1976
Пользователь
 
Регистрация: 03.02.2009
Сообщений: 15
По умолчанию Как устранить ошибку "socket error #10060"

Подскажите почему при попытке скачать файл может выдавать следующую ошибку:
"socket error #10060
connection timed out"
я так думаю скорее всего связано с прокси?
Evgen1976 вне форума Ответить с цитированием
Старый 19.03.2009, 18:51   #2
eldar
Форумчанин
 
Аватар для eldar
 
Регистрация: 04.08.2008
Сообщений: 154
По умолчанию

чё за программа
код в студию!!!
покажи свой код что она должна делать твоя программа тогда тебе помогут
eldar вне форума Ответить с цитированием
Старый 19.03.2009, 19:06   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Это связано с превышением времени ожидания подключения к удаленному хосту.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.03.2009, 19:17   #4
Evgen1976
Пользователь
 
Регистрация: 03.02.2009
Сообщений: 15
По умолчанию

Вот код:

type
TDownLoader = class(TThread)
private
FURL: string;
FToFolder: string;
protected
procedure Execute; override;
public
property URL:string read FURL write FURL;
property ToFolder:string read FToFolder write FToFolder;
end;

{ TDownLoader }

procedure TDownLoader.Execute;
var str:TFileStream;
begin
ForceDirectories(ExtractFileDir(ToF older));
str:=TFileStream.Create(ToFolder, fmCreate);
try
try
if (FormSetting.chProxy.Checked=True) then
begin
FormSetting.IdHTTP1.ProxyParams.Pro xyServer:=FormSetting.eProxyAdr.Tex t;
FormSetting.IdHTTP1.ProxyParams.Pro xyPort:=StrToInt(FormSetting.eProxy Port.Text);
end;
FormSetting.IdHTTP1.Get(url,str);
except

end;
finally
str.Free;
end;
end;

procedure TFormSetting.thrTerminate(Sender: TObject);
begin
MessageBox(0, 'Çàêà÷àíî!', pChar('EuroSoccer: áàçà äàííûõ'), MB_ICONInformation);
end;

procedure TFormSetting.btnObnovClick(Sender: TObject);
var d:TDownLoader;
begin
IdHTTP1.Head('http://evgen1976.jino.ru/data.mdb');
FormMain.DateBaseNew:=IdHTTP1.Respo nse.LastModified;
FormMain.DownLoadId:=True;
if (DateBase<>FormMain.DateBaseNew) then
begin
//Ñîçäàäèì êëàññ ïîòîêà.
//Ïîòîê äëÿ íà÷àëà áóäåò îñòàíîâëåí
d:=TDownLoader.Create(true);
//Ïåðåäàäèì ïàðàìåòðû ïîòîêó
d.URL:='http://evgen1976.jino.ru/data.mdb';
d.ToFolder:=ProgramDir+'data.mdb';
//Ïîòîê äîëæåí óäàëèòü ñåáÿ ïî çàâåðøåíèþ ñâîåé ðàáîòû
d.FreeOnTerminate:=true;
//È çàïóñòèì åãî íà çàêà÷êó.
d.Resume;
//Òåïåðü ñ ïðîöåäóðû ìû âûéäåì, íî ïîòîê ðàáîòàåò
//è æèâ¸ò ñâîåé æèçíåé
//Ïîòîê äîëæåí óäàëèòü ñåáÿ ïî çàâåðøåíèþ ñâîåé ðàáîòû
d.FreeOnTerminate:=true;
d.OnTerminate:=thrTerminate;
end else
showmessage('Âàøà áàçà òàêàÿ æå êàê íà ñåðâåðå, ïîýòîìó îíà íå òðåáóåò îáíîâëåíèÿ!');
end;

procedure TFormSetting.FormCreate(Sender: TObject);
begin
GetDir(0, ProgramDir);
ProgramDir:=ProgramDir+'\Db\';
end;

procedure TFormSetting.MyProgress(var msg: TMessage);
begin
begin
case msg.WParam of
0: begin ProgressBar1.Max:=msg.LParam;Progre ssBar1.Position:=0; end;
1: ProgressBar1.Position:=msg.LParam;
end;
end;
end;

procedure TFormSetting.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
PostMessage(FormSetting.Handle,MY_M ESS,1,AWorkCount);
end;

procedure TFormSetting.IdHTTP1WorkBegin(Sende r: TObject;
AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
PostMessage(FormSetting.Handle,MY_M ESS,0,AWorkCountMax);
end;

Возникает также еще следующая ошибка:
"socket error #10051
network is unreachable"

Это уже на другом компьютере
Evgen1976 вне форума Ответить с цитированием
Старый 19.03.2009, 19:19   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

вторая ошибка означает что к хосту, к которому вы пытаетесь обратиться отсутствует маршрут.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.03.2009, 19:38   #6
Evgen1976
Пользователь
 
Регистрация: 03.02.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
вторая ошибка означает что к хосту, к которому вы пытаетесь обратиться отсутствует маршрут.
что надо сделать чтобы он присутствовал?

может я выбрал какой-то проблемный путь для закачки файла, может посоветуете что-то проще? А то ошибки что-то идут косяками

Последний раз редактировалось KORN; 20.03.2009 в 04:33.
Evgen1976 вне форума Ответить с цитированием
Старый 19.03.2009, 20:05   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
FormMain.DateBaseNew:=IdHTTP1.Respo nse.LastModifie d;
вообще непонятно что написано
Первая ошибка связана очевидно или с настройками Proxy (хост не доступен) или с недоступностью сайта
Вторая- очевидно именно с неправильным хостом proxy
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.03.2009, 20:13   #8
Evgen1976
Пользователь
 
Регистрация: 03.02.2009
Сообщений: 15
По умолчанию

FormMain.DateBaseNew:=IdHTTP1.Respo nse.LastModified;

Это в переменную заносится дата создания файла который собираюсь качать.
У меня на работе для подключения к инету использую локалку и соответсвенно прокси, поэтому скачивает без вопросов, как только прокси не используются вот тогда и сыпятся ошибки!
Evgen1976 вне форума Ответить с цитированием
Старый 19.03.2009, 21:24   #9
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

прокси не используешь, а
Код:
FormSetting.IdHTTP1.ProxyParams.ProxyServer:=FormS etting.eProxyAdr.Text;
FormSetting.IdHTTP1.ProxyParams.ProxyPort:=StrToIn t(FormSetting.eProxyPort.Text);
оставляешь ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 19.03.2009, 22:23   #10
Evgen1976
Пользователь
 
Регистрация: 03.02.2009
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Квэнди Посмотреть сообщение
прокси не используешь, а
Код:
FormSetting.IdHTTP1.ProxyParams.ProxyServer:=FormS etting.eProxyAdr.Text;
FormSetting.IdHTTP1.ProxyParams.ProxyPort:=StrToIn t(FormSetting.eProxyPort.Text);
оставляешь ?
Так ты обрати внимание, что перед этим стоит if:

if (FormSetting.chProxy.Checked=True) then
begin
FormSetting.IdHTTP1.ProxyParams.Pro xyServer:=FormS etting.eProxyAdr.Text;
FormSetting.IdHTTP1.ProxyParams.Pro xyPort:=StrToIn t(FormSetting.eProxyPort.Text);
end;

который проверяет выбрал пользователь использовать прокси или нет, если выбрал, тогда использую!
Evgen1976 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Устранить ошибку AlenaBEL Помощь студентам 7 23.11.2008 15:00
Во время соединениия с фтп соообщение Socket Error 11004 Alex_79 Компоненты Delphi 0 20.10.2008 10:04
raised exception class EIdSocketError with message' Socket Error # 10022 Invalid argument eldar Работа с сетью в Delphi 16 08.08.2008 23:49
asynchronous socket error 10060 delphin100 Работа с сетью в Delphi 6 07.05.2008 07:07