FTPS клиент на mbedOS
Я пытаюсь написать свою собственную реализацию клиента FTPS в mbedOS. Я уже сделал аутентификацию на сервере, но я не понимаю, как поместить и получить файлы. Сейчас я делаю следующее:
- Подключитесь к серверу через контрольный сокет TCP, получите сообщение с сервером.
- Запустите SSL рукопожатие.
- Отправить команду PASV.
- Откройте сокет TCP с IP и PORT, который я получаю в ответе PASV.
- Запустите рукопожатие SSL с тем же контекстом SSL, что и в ControlSocket.
- Отправить данные.
- Закройте сокет данных.
- Попробуйте получить код ответа "226"
Но сервер, возможно, игнорирует закрывающийся сокет. Журнал FTP-сервера Wings:
[04] Tue, 24 Apr 2018 11:29:17 (0000123) 220 Wing FTP Server ready... (UNREGISTERED WING FTP SERVER)
[03] Tue, 24 Apr 2018 11:29:17 (0000123) AUTH TLS
[04] Tue, 24 Apr 2018 11:29:17 (0000123) 234 AUTH command OK. Initializing TLS connection.
[03] Tue, 24 Apr 2018 11:29:23 (0000123) USER fsck
[04] Tue, 24 Apr 2018 11:29:23 (0000123) 331 Password required for fsck
[03] Tue, 24 Apr 2018 11:29:23 (0000123) PASS **********
[04] Tue, 24 Apr 2018 11:29:23 (0000123) 230 User fsck logged in.
[03] Tue, 24 Apr 2018 11:29:24 (0000123) PBSZ 0
[04] Tue, 24 Apr 2018 11:29:24 (0000123) 200 Command okay. PBSZ=0.
[03] Tue, 24 Apr 2018 11:29:24 (0000123) PROT P
[04] Tue, 24 Apr 2018 11:29:24 (0000123) 200 Encrypting Data Channel.
[03] Tue, 24 Apr 2018 11:29:24 (0000123) PASV
[04] Tue, 24 Apr 2018 11:29:24 (0000123) 227 Entering Passive Mode (192,168,137,1,4,8)
[03] Tue, 24 Apr 2018 11:29:25 (0000123) STOR testfile.txt
[04] Tue, 24 Apr 2018 11:29:25 (0000123) 150 Opening BINARY mode data connection for file transfer.