<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=338890&amp;view=findpost&amp;p=2968448</guid>
        <pubDate>Mon, 22 Aug 2011 11:37:45 +0000</pubDate>
        <title>ByteArray</title>
        <link>https://forum.sources.ru/index.php?showtopic=338890&amp;view=findpost&amp;p=2968448</link>
        <description><![CDATA[maljavka: Здравствуйте.<br>
Вот возникла такая проблемка.<br>
Значится, пишу &quot;упрощенный до нельзя&quot; приемник snmp trap на actionScript. Приходит trap с кучей различной информации, но меня интересует только текстовое поле. Всё приходит в виде ByteArray. <br>
Отправляется вот такая строка:<br>
<strong class='tag-b'>snmptrap.exe -c public -v 2c 172.16.0.101:162 &quot;&quot; 1.3.3.3.3.3.3.3 1.2.2.2.2.2.2 s &quot;Некая строка&quot; </strong><br>
Кодируется это всё через ASN.1 автоматически на стороне отправителя.<br>
Принимаю через DatagramSocket.<br>
Читаю так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">event.data.readUTFBytes( event.data.bytesAvailable )</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Получается текстовая строка<br>
<strong class='tag-b'>0&#092;     public&#65533;O  &#39;&#65533;  </strong><br>
<br>
До этого писал такую же штуку на C++. И простой манипуляцией: <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void __fastcall TForm1::ServerSocketUDPRead(TObject *Sender,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TStream *AData, TIdSocketHandle *ABinding)</div><div class="code_line">{</div><div class="code_line">char *resp = (ServerSocket-&#62;ReceiveString()).c_str();</div><div class="code_line">}</div></ol></div></div></div></div><br>
получал указатель на полную закодированную строку в 94 символа, в которой было много белиберды, но строка &quot;Некая строка&quot; и сообщения была нормально читаемой и с ней можно было работать.<br>
Как мне сделать примерно такое же в ActionScript? Может есть какой-то метод перевода массива байт в осмысленную строку в нужной кодировке?..<br>
readMultiByte(...); тоже ничего осмысленного не приносит, или чего-то неправильно указываю...<br>
Пользовался AS3Crypto, но там DER, а не BER, и не подходит. Да и не надо мне все поля целиком знать. Только сопутствующий текст.<br>
Спасибо]]></description>
        <author>maljavka</author>
        <category>Flash, Flex, ActionScript</category>
      </item>
	
      </channel>
      </rss>
	