Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.007 c
2-1311843120
Александр160591
2011-07-28 12:52
2011.11.20
запарка с компонентами и их свойствами


4-1252050878
Quazi
2009-09-04 11:54
2011.11.20
Создание собственной SPIN-блокировки


15-1311798599
Юрий
2011-07-28 00:29
2011.11.20
С днем рождения ! 28 июля 2011 четверг


2-1311793235
Drowsy
2011-07-27 23:00
2011.11.20
При уничтожении модуля данных возникает AV.


2-1311757172
SQLEXPRESS
2011-07-27 12:59
2011.11.20
Работать с Word, не через буфер обмена





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский