Главная страница
    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.023 c
2-1311696047
prodex
2011-07-26 20:00
2011.11.20
RasDial возвращает ошибку 668


15-1311593331
Кто б сомневался
2011-07-25 15:28
2011.11.20
Интересный flash апплет с мировой статистикой "online"


15-1311077706
>|<
2011-07-19 16:15
2011.11.20
Как назвать ТЗ?


1-1273589288
guest
2010-05-11 18:48
2011.11.20
Закорючки в Excel


2-1311930662
From4pda
2011-07-29 13:11
2011.11.20
копирование файлов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский