Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

отправка файлов по FTP на WinSock

17K
10 октября 2006 года
ProteZ
18 / / 18.09.2006
Я знаю, как отправлять команды FTP - серверу с помощью WinSock. Но возника ет одна проблема.
Вот я отправляю например запрос FTP - серверу на получение списка содержания директории. Он посылает ответ, но как клиенту его принять?
А если вместо этого запроса будет запрос на скачку файла?
547
11 октября 2006 года
Hydra
488 / / 20.06.2006
Вообще-то командой recv :)
17K
11 октября 2006 года
ProteZ
18 / / 18.09.2006
Да понятно что функцией recv. Но меня интересует КАК принять файл? Ведь файл это не обычная строка вроде. Может у кого есть хоть какие нить огрызки кода?
547
11 октября 2006 года
Hydra
488 / / 20.06.2006
Цитата:

int recv (

SOCKET s,
char FAR* buf,
int len,
int flags
);


Открой файл и пиши в него содержимое buf сколько влезет. Какие проблеммы-то?

17K
11 октября 2006 года
ProteZ
18 / / 18.09.2006
Но ведь вроде нужно режимы устанавливать(например TYPE A). Описание recv я знаю уже наизусть, спасибо. А нет пусть даже обобщённого куска кода? И в каком формате приходят текстовые данные?
17K
12 октября 2006 года
ProteZ
18 / / 18.09.2006
неужели ни у кого ничего нету?
547
13 октября 2006 года
Hydra
488 / / 20.06.2006
Что значит в каком формате они приходят? В виде битиков и байтиков, однако. Это просто данные, а как их интерпритировать: как текст, как картинку и т.п. - это уже проблемма просмотрщика этого типа файлов.
Что-то типа:
 
Код:
while (LastError<WSABASEERR)          // While no errors
   begin LastError:=recv(IOSock,ABuf,ABufSize,0);
     if (LastError>0) then
      begin
           пишем ABufSize байт из ABuf в файл
    end else
     LastError=WSAGetLastError(); end

Не помогает?
17K
13 октября 2006 года
ProteZ
18 / / 18.09.2006
Я вот о чём. Вот в директории юзера есть файл test.txt, в нём находится текст "привет". Когда моя программа сохраняет этот файл выходит примерно вот что:
Цитата:
250 Opening ASCII mode data connection for test.txt (6 Bytes).
d_квадратики_”й_квадратики_‘Фw›2@

17K
13 октября 2006 года
ProteZ
18 / / 18.09.2006
Я вот о чём. Вот в директории юзера есть файл test.txt, в нём находится текст "привет". Когда моя программа сохраняет этот файл выходит примерно вот что:
Цитата:
250 Opening ASCII mode data connection for test.txt (6 Bytes).
d_квадратики_”й_квадратики_‘Фw›2@



А при попытке отправить файл в каталоге юзера появляется только файл, но его размер 0 байт.

17K
14 октября 2006 года
ProteZ
18 / / 18.09.2006
[QUOTE=Hydra]Что значит в каком формате они приходят? В виде битиков и байтиков, однако. Это просто данные, а как их интерпритировать: как текст, как картинку и т.п. - это уже проблемма просмотрщика этого типа файлов.
Что-то типа:
 
Код:
while (LastError<WSABASEERR)          // While no errors
   begin LastError:=recv(IOSock,ABuf,ABufSize,0);
     if (LastError>0) then
      begin
           пишем ABufSize байт из ABuf в файл
    end else
     LastError=WSAGetLastError(); end

Не помогает?[/QUOTE]

Этот код не работает, сто раз пробывал и так и сяк, ничего не получается
12K
14 октября 2006 года
rjx
55 / / 11.03.2006
[QUOTE=ProteZ]Я вот о чём. Вот в директории юзера есть файл test.txt, в нём находится текст "привет". Когда моя программа сохраняет этот файл выходит примерно вот что:


А при попытке отправить файл в каталоге юзера появляется только файл, но его размер 0 байт.[/QUOTE]

Когда FTP сервер получает запрос на список файлов или на скачивание, он открывает дополнительный порт, по которому эти данные и надо получать, например, создав в новом потоке ещё одно соединение.

Параметры необходимого соединения сервер посылает в ответе на запрос.

Попробуй включить опцию debug при соединении с сервером командой ftp, там всё можно посмотреть. И см. спецификацию протокола, например, здесь: http://www.ietf.org/rfc/rfc0959.txt
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог