aleator
27-08-2012, 09:04
Пишу простенький ftp-клиент в C++Builder c использованием компонента ClientSocket. Тестирую в Filezilla Server.
Первым сокетом (командным) подключаюсь коректно (команды PASS, USER).
Далее, пытаюсь открыть соединение для передачи данных в пассивном режиме.
Для этого с командного сокета посылаю команду "PASV" и получаю номер порта: 227 Entering Passive Mode (127,0,0,1,4,22),
создаю сокет для данных (PORT= 1046 (4*256+22))
Что делать дальше - представляю смутно. Я так понимаю, его надо приготовить к приёму данных? Form1->ClientSocket2->Socket->Listen(...
Но если я прав, какие аргументы в этой функции? Если это данные сервера, то где их взять?
Далее с первого сокета посылаю команду LIST, и сервер не может открыть мой второй сокет для передачи данных.
Брендмауэр и файерволл отключены.
Первым сокетом (командным) подключаюсь коректно (команды PASS, USER).
Далее, пытаюсь открыть соединение для передачи данных в пассивном режиме.
Для этого с командного сокета посылаю команду "PASV" и получаю номер порта: 227 Entering Passive Mode (127,0,0,1,4,22),
создаю сокет для данных (PORT= 1046 (4*256+22))
Что делать дальше - представляю смутно. Я так понимаю, его надо приготовить к приёму данных? Form1->ClientSocket2->Socket->Listen(...
Но если я прав, какие аргументы в этой функции? Если это данные сервера, то где их взять?
Далее с первого сокета посылаю команду LIST, и сервер не может открыть мой второй сокет для передачи данных.
Брендмауэр и файерволл отключены.