У меня проблема с приемом файлов и каталогов с FTP сервера через встроенный стек WISMO228. FTP сервер работает в пассивном режиме (т.е. создается 2 канала: данных и управляющий. На каждом канале сервером является FTP сервер, порт канала данных динамически задает сервер в процессе перехода в пассивный режим. После окончания передачи данных второй сокет закрывается). Передача файлов на сервер проходит нормально, а вот с приемом проблемы:
Если запрашиваемый файл маленький – на момент активации второго клиента, второй сокет уже оказывается разорванным со стороны сервера (файл был передан сервером полностью) и на at+wipdata=2,2,1 ответ +CME ERROR: 831
Если файл достаточно большой и на момент активации второго клиента второй сокет еще активен (сервер еще передает данные), прием файла от модема корректно начинается, но заканчивается в момент разрыва сокета сервером, при этом еще не все данные были вычитаны из модема.
Аналогичная картина и с чтением каталогов: если файлов много – читается только верхняя часть каталога, если мало – не читается ничего.
Производитель рекомендует использование активного режима (AirPrime_WISMO228_Establishing_an_FTP_Client_with_WISMO-Application_Note-Rev001.pdf). В этом случае на WISMO запускается сервер, на который FTP сервер будет выкладывать данные. Но в связи с тем, что сотовый оператор присваивает «серый» IP адрес, у FTP сервера нет возможности установить соединение с портом модема. Использование белого адреса накладно.
Не посоветуете ли, как обойти ситуацию… Желательно на этой же аппаратной платформе.