Эмулятор устройства и FTP внутри проекта мобильного приложения c # - PullRequest
1 голос
/ 04 мая 2009

Для моего мобильного приложения c #, разработанного с Visual Studio 2008, я пытаюсь использовать FTP. FTP работает нормально с реального устройства, но он не работает, когда я использую эмулятор устройства: соединение успешно, но при попытке получения данных произошла ошибка. Оба используют Windows Mobile 5.

У некоторых из вас уже была эта проблема? Когда я googlised, это, кажется, повторяется, но еще не решено.

Вот журнал, отображаемый FTP-сервером.

(000001) 05.05.2009 09:50:59 - (не авторизован) (127.0.0.1)> Подключен, отправка приветственного сообщения ...

(000001) 05.05.2009 09:50:59 - (не авторизован) (127.0.0.1)> 220-FileZilla Server версии 0.9.31 бета

(000001) 05.05.2009 09:50:59 - (не авторизован) (127.0.0.1)> 220 FTP-сервер

(000001) 05.05.2009 09:50:59 - (не авторизован) (127.0.0.1)> ПОЛЬЗОВАТЕЛЬ aa

(000001) 05.05.2009 09:50:59 - (не авторизован) (127.0.0.1)> 331 Требуется пароль для aa

(000001) 05.05.2009 09:51:00 - (не авторизован) (127.0.0.1)> PASS **

(000001) 05.05.2009 09:51:00 - aa (127.0.0.1)> 230 Зарегистрирован

(000001) 05.05.2009 09:51:01 - aa (127.0.0.1)> SYST

(000001) 05.05.2009 09:51:01 - aa (127.0.0.1)> 215 UNIX, эмулируемый FileZilla

(000001) 05.05.2009 09:51:01 - аа (127.0.0.1)> CWD /

(000001) 05.05.2009 09:51:04 - аа (127.0.0.1)> PASV

(000001) 05.05.2009 09:51:04 - aa (127.0.0.1)> 227 Вход в пассивный режим (127,0,0,1,5,22)

(000001) 05.05.2009 09:51:41 - aa (127.0.0.1)> отключен.

Ответы [ 2 ]

2 голосов
/ 05 мая 2009

Вы пробовали "закрепить" эмулятор устройства.

В Visual Studio перейдите в Инструменты и откройте Диспетчер эмулятора устройств . Оттуда вы можете щелкнуть правой кнопкой мыши на работающем в данный момент эмуляторе устройства и выбрать Cradle для имитации базовой станции устройства с ActiveSync.

Я нахожу, что получаю лучшие сетевые результаты, когда эмулятор устройства правильно подключен к ПК разработчика через «симулированное» соединение ActiveSync. На данный момент у вас есть двухточечное IP-соединение между вашим ПК (169.254.2.2) и устройством (169.254.2.1).

1 голос
/ 04 мая 2009

Некоторое время назад я работал с этим мобильным устройством, поэтому у меня нет реального решения, но, возможно, есть какое-то объяснение.

Как видите, проблема возникает сразу после входа в пассивный режим. Как вы можете видеть, используемый IP-адрес - 127.0.0.1, который даже сообщается для пассивного режима (с используемыми портами). Я думаю, что эмулируемый сетевой стек имеет некоторые проблемы, чтобы заставить это виртуальное соединение работать (с адресами локального хоста). Поэтому, возможно, вам следует попробовать , не используя пассивный режим , чтобы заставить его работать.

Еще одним способом решения этой проблемы будет запись связи с WireShark и попытка выяснить, что именно идет не так. Но это сработало бы, если у вас есть более глубокие знания о IP-протоколе TCP и обо всем этом.

...