FTP протокол, открытые порты, команда PASV - Assembler

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Назрел очередной вопрос по алгоритму работы клиента FTP. А именно по поводу команды PASV предваряющей каждый задрыг с передачей данных. При теоретическом ознакомлении с темой был свято уверен, что кошерность связи обеспечивается двумя портами 21 - управление, и "какой сервак пожелает" - данные. При практическом же ознакомлении вдруг выяснилось, что сервак желает каждый раз новый порт после очередного общения с клиентом. В виду чего озаботился вопросами: что он со старыми портами делает, сам отключает, или мне это делать нужно. И нормально это вообще, или это моё железо? Сервак мне изображает мой же Zyxel Keenetic с воткнутой в него флэшкой. И до кучи, когда по PASV я получаю номер порта ,я создаю НОВЫЙ сокет. Это правильно?
Уважаемый модератор, понимаю тема не профильная, но сетевики (где я уже попросил помощи) молчат как упыри, а тут я знаю как минимум двух человек с этой темой близко знакомых. Если можно пусть повисит сутки, если соблаговолят ответить, то можно и после оставить, я на неё ассемблерный пример натяну, когда более менее разберусь.

Решение задачи: «FTP протокол, открытые порты, команда PASV»

textual
Листинг программы
invoke   shutdown,[Sock_com],esi              ; разрываем соединение
invoke   closesocket,[Sock_com]               ; и закрываем сокет

Объяснение кода листинга программы

  1. В коде используются функции из библиотеки Winsock.h, а именно: shutdown и closesocket.
  2. Функция shutdown используется для разрыва соединения с сервером.
  3. Функция closesocket используется для закрытия сокета.
  4. В качестве параметра в функцию shutdown передается значение Sock_com.
  5. В качестве параметра в функцию closesocket передается значение Sock_com.
  6. Значение Sock_com представляет собой дескриптор сокета, который нужно закрыть.
  7. Дескриптор сокета используется для управления сокетом и передачи данных через него.
  8. После закрытия сокета, дальнейшая передача данных становится невозможной.
  9. Код выполняет разрыв соединения и закрытие сокета, что может быть полезно для безопасности и предотвращения утечки информации.
  10. Причина использования этих функций может быть связана с необходимостью прекратить работу сокета после выполнения определенных операций или при возникновении ошибок.

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы