LINUX.ORG.RU

[Java]Ftp server

 


0

1

Парни, я тут пишу свой фтп сервер на яве. Внезапно подкралась проблема: как передать список файлов? Никак не получается.

Ответ на: комментарий от bbk123

> Ответ в стиле вопроса: берешь список и передаешь.
Доставило.

urxvt ★★★★★
()
Ответ на: комментарий от bbk123

ServerSocket ssd = new ServerSocket(6445);
result = «150 BINARY connection open for MLSD\015\012»;
os.write(result.getBytes());
os.flush();


Socket sd = ssd.accept();
System.out.println(«File transfer accepted»);
result = «Type=cdir; Perm=cpmel; Unique=keVO1+7G4; /\n»+
«Type=pdir; Perm=el; Unique=keVO1+ZF4; ..\n»+
«Type=file; Perm=awdrf; Unique=keVO1+EH4; bar\n»+
«Type=file; Perm=awdrf; Unique=keVO1+LH4; foo\n»;

OutputStream osd = sd.getOutputStream();
osd.write(result.getBytes());
osd.flush();
                  
result = «226 Передача завершена\015\012»;
os.write(result.getBytes());
os.flush();

В ответ на клиентский MLSD

analimous
() автор топика

Точно так же как передаешь файлы. Открываешь data-соединение, и по команде LIST передаешь в него список файлов.

creepnee
()
Ответ на: комментарий от creepnee

До передачи файлов еще не дошло.
Фтп клиент посылает следующие команды
USER anonymous
PASS anon@localhost
OPTS UTF8 ON
PWD
TYPE I
EPSV
MLSD

analimous
() автор топика
Ответ на: комментарий от analimous

По команде EPSV открываешь входящий сокет, и передаешь в ответе адрес сокета. Клиент к тебе подключается, и по команде MLSD передаешь список файлов.

creepnee
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.