locked
Получение данных из StreamSocket.InputStream (Javascript) RRS feed

  • Вопрос

  • Я создаю FTP-клиент

    Для чтения данных использую DataReader, в качестве параметра которому задан StreamSocket.InputStream

    Прежде, чем считать данные из DataReader их нужно получить при помощи метода DataReader.LoadAsync. Этот метод использует в качестве параметра число, которое отображает количество загружаемых байт. Это число заранее неизвестно, т.к. ответ от сервера может быть различного размера.

    На данный момент удалось получить ответ от сервера используя произвольное число байт 

    DataReader.LoadAsync(100);

    Но 100 байт - это не полный ответ сервера.

    Если задать заведомо большее количество байт, чем дает сервер, то асинхронная функция выполняется бесконечно.

    В примерах, которые я нашел на сайте используются два способа чтения полной строки

    1. Строка изначально сформирована так, что первые её 4 байта содержат int32, в котором записан размер строки. Этот вариант мне не подходит, т.к. я не могу редактировать ответ сервера.

    2. Stream измеряется при помощи атрибута size 

    var stringLength = stream.size;

    В примерах такой способ не использовался при получении данных из сокетов. В моем случае возвращается Undefined.

    Вопрос: как измерить длину ответа, получаемого от FTP-сервера?

    20 сентября 2015 г. 5:52

Ответы

  • Ответ дали в англоязычном сегменте

    https://social.msdn.microsoft.com/Forums/windowsapps/ru-RU/f418b3b0-53fe-4e30-b7a0-ddae1c5419f3/getting-data-from-streamsocketinputstream-javascript?forum=wpdevelop

    • Помечено в качестве ответа Phoenyx08 21 сентября 2015 г. 7:28
    21 сентября 2015 г. 7:28