|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Greg Zemskov 2:5020/400 26 Nov 2000 19:21:13 To : All Subject : Сокеты и FTP daemon (HУЖHА ПОМОЩЬ) -------------------------------------------------------------------------------- Доброго времени суток, All. Целую неделю мучаюсь, помогите, пожалуйста, если знаете: Я пишу FTP сервер под Unix платформу (неветвящийся, однопотоковый), через сокеты естественно. Control connection пашет как трактор, все команды посылаются и принимаются нормально, проблема в установлении Data connection для команд типа LIST, передачи/приема файлов etc. В начале я устанавливаю порт для data connection по-умолчанию (baseport- 1, где baseport - порт сокета control connection, открытый при запуске FTP сервера). Это значение возвращается FTP клиенту по команде PASV. FTP клиент изменяет его коммандой PORT на свой. После этого accept для data connection сокета не работает! Причем, если вызвать getsockname после bind для data connection сокета, номер порта отличается от того, который задавал FTP клиент. Из-за чего может такое быть ? Вопрос смежный с предыдущим: на каком шаге переходить в passive mode ? Есть предположение, что после PASV (при этом я открываю сокет для data connection и выполняю для него bind+listen), но как быть в случае, если PORT выполняется после PASV. В этом случае предется закрывать сокет и bind'ить его по-новому ?! Буду очень благодарен за любую информацию. -- Sincerely yours, Greg aka mnemonic - --- 2:5015/115.21@fidonet.org - --- Веб-Мастер и Маргарита Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/648805e13901.html, оценка из 5, голосов 10
|