Чтобы создать подключение для передачи данных в активном режиме, вы:
- Найти локальный адрес управляющего соединения с помощью
getsockname()
;
- изменить этот адрес, изменив номер порта на 20;
- создать еще один сокет с
socket()
;
- привязать новый сокет к адресу порта 20, созданному с помощью
bind()
;
- подключите сокет к адресу / порту клиента с помощью
connect()
.
Обратите внимание, что bind()
, скорее всего, потерпит неудачу, если ваш демон не работает от имени пользователя root, поскольку привязка низкого номера порта является привилегированной операцией.