Форум: "Сети";
Текущий архив: 2011.11.20;
Скачать: [xml.tar.bz2];
ВнизВопрос по FtpGetFile Найти похожие ветки
← →
SortoVaritu © (2009-06-23 15:17) [80]Вот кстати еще хотел спросить. Чем отличается запрос файла командой FTPGetFile и командой RETR.
← →
Сергей М. © (2009-06-23 15:25) [81]
> у меня всегда такой мусор валяецца
И кому, как думаешь, интересно или приятно взирать на твой "мусор" ?
Ты пойми - если ты процитировал некий код, то подразумевается, что ты уверен в том что он имеет прямое отношение к твоей задаче или проблеме в ее решении, т.е. он имеет некое осмысленное немаловажное значение, коль скоро он фигурирует ..
> Чем отличается запрос файла командой FTPGetFile и командой
> RETR
FTPGetFile неявно подает команду RETR, получает содержимое удаленного файла и записывает полученное содержимое в указанный тобой файл.
← →
SortoVaritu © (2009-06-23 15:52) [82]Проще говоря FTPGetFile так же использует команду RETR для доступа к файлу.
← →
Сергей М. © (2009-06-23 15:56) [83]Конечно.
А как же иначе ?
← →
SortoVaritu © (2009-06-23 16:27) [84]Хм. Тогда я вот думаю. Решится ли мой вопрос с разрывом сессии, если я буду использовать напрямую RETR вместо FTPGETFile.
← →
Сергей М. © (2009-06-23 16:32) [85]Ты уже код [78] изучил ? Опробовал на своих "больших" файлах ? Каковы результаты ?
Излагай подробно и дословно все что видишь при его выполнении ..
← →
SortoVaritu © (2009-06-25 10:31) [86]Результат точно такой же.
Access violation at adress 77C32A16 in module msvcrt.dll. Read of adress FFFFFFFF
← →
Сергей М. © (2009-06-25 10:53) [87]Что за ОС ? Какая версия Делфи ?
← →
SortoVaritu © (2009-06-25 10:59) [88]Windows XP SP3. Delphi 7.
Я вот тоже думаю, что не в проге дело.
← →
Сергей М. © (2009-06-25 11:05) [89]Ты это код пробовал "один в один" ?
Или свои изменения внес ?
Если внес, показывай весь этот фрагмент со своими изменениями ..
← →
SortoVaritu © (2009-06-25 11:11) [90]код внес один в один. только сервер свой подставил ну и имя файла тож который на сервере лежит а так один в один
← →
Сергей М. © (2009-06-25 11:25) [91]
> код внес один в один. только сервер свой подставил
И это ты называешь "один в один" ?)
Приводи текст с изменениями ..
← →
SortoVaritu © (2009-06-25 11:41) [92]
function FtpCommand(
hConnect: HINTERNET;
fExpectResponse: BOOL;
dwFlags: DWORD;
lpszCommand: PChar;
dwContext: DWORD;
var hFtpCommand: HINTERNET): BOOL;
stdcall; external "wininet.dll" name "FtpCommandA";
const
url = "vh22.win.hoster.by";
procedure TForm1.Button5Click(Sender: TObject);
var
hInet, hFTPSession, hFile: HINTERNET;
RCode, RTLen: Cardinal;
RText: String;
begin
hInet := InternetOpen("FTP", INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
Win32Check(Assigned(hInet));
try
hFTPSession := InternetConnect(hInet, "vh22.win.hoster.by", 21, login, password, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
Win32Check(Assigned(hFTPSession));
try
Win32Check(FtpCommand(hFTPSession, True, FTP_TRANSFER_TYPE_BINARY, "RETR 1.txt", 0, hFile));
try
RTLen := 255;
SetLength(RText, RTLen);
RCode := 12003; // <-- бессмысленная строка !!!!
Win32Check(InternetGetLastResponseInfo(RCode, PChar(RText), RTLen));
SetLength(RText, RTLen);
ShowMessage("Response code = " + IntToStr(RCode) + #10#10"Response text is"#10#10 + RText)
finally
InternetCloseHandle(hFile);
end;
finally
InternetCloseHandle(hFTPSession);
end;
finally
InternetCloseHandle(hInet);
end;
end;
← →
Сергей М. © (2009-06-25 12:15) [93]
> Для доступа к FTP используется прокси
Ну и где у тебя в коде используется прокси ?
Нпапрямую же лезешь к ресурсу ..
← →
SortoVaritu © (2009-06-25 12:23) [94]Блин. Я уже и прокси не использую. На прямую делаю. Чтобы исключить любую вероятность его вмешательства.
← →
Сергей М. © (2009-06-25 12:40) [95]И какой же размер у 1.txt ?
← →
Сергей М. © (2009-06-25 12:45) [96]
> На прямую делаю
Доступ в Тырнет у тебя прямой или из корп.сети ?
← →
SortoVaritu © (2009-06-25 12:50) [97]У меня есть и такой и такой. Все это я делаю дома. Дома у меня доступ прямой. Прямое соединение через провайдера.
← →
Сергей М. © (2009-06-25 12:57) [98]Хочешь сказать, что способ доступа не влияет ?
Т.е. один и тот же код (без использования прокси) не работает ни здесь ни там, возбуждая одно и тио же исключение на одной и той же строчке ?
Ну хорошо.
А мой код (один в один или без использования прокси) ТОЖЕ возбуждает исключение при разных условиях способах доступа ?
← →
SortoVaritu © (2009-06-25 13:21) [99]Так точно. FTPCommand выбрасывает одну и ту же ошибку
← →
Сергей М. © (2009-06-25 13:33) [100]А как узнал, что имеенно FTPCommand, а не что-то иное ?
В отладике пошагово или как ?
← →
SortoVaritu © (2009-06-25 14:54) [101]Да. Пошагово отлаживал.
← →
Сергей М. © (2009-06-25 15:51) [102]А декларация FTPCommand у тебя случаем не кривая ?
Покажи-ка ее ..
← →
SortoVaritu © (2009-06-25 16:02) [103]function FtpCommand(
hConnect: HINTERNET;
fExpectResponse: BOOL;
dwFlags: DWORD;
lpszCommand: PChar;
dwContext: DWORD;
var hFtpCommand: HINTERNET): BOOL;
stdcall; external "wininet.dll" name "FtpCommandA";
Если ты это имеешь ввиду, то я же у тебя ее и скопировал. Только вот последний параметр меня смущает.
← →
Сергей М. © (2009-06-25 16:29) [104]
> последний параметр меня смущает
Он тебя не должен смущать, ибо у меня код успешно работает.
А что собссно смущает-то ? Уже жевали-пережевали этот вопрос в начале топика ..
← →
SortoVaritu © (2009-06-25 17:12) [105]Хотя в общем ты прав. Думаешь проблема с компилятором или с с системой? Возможно с Wininet.dll?
← →
Сергей М. © (2009-06-25 17:25) [106]Ты экспериментируешь в заведомо "чистом" тестовом проекте или в "боевом" ?
← →
SortoVaritu © (2009-06-25 18:21) [107]В чистом проекте. Твой код я вставил в абсолютно чистый проект.
Страницы: 1 2 3 вся ветка
Форум: "Сети";
Текущий архив: 2011.11.20;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.006 c