+++ /dev/null
-package com.adobe.protocols.dict.util\r
-{\r
- import com.adobe.net.proxies.RFC2817Socket;\r
- import flash.events.ProgressEvent;\r
-\r
- public class SocketHelper\r
- extends RFC2817Socket\r
- {\r
- private var terminator:String = "\r\n.\r\n";\r
- private var buffer:String;\r
- public static var COMPLETE_RESPONSE:String = "completeResponse";\r
-\r
- public function SocketHelper()\r
- {\r
- super();\r
- buffer = new String();\r
- addEventListener(ProgressEvent.SOCKET_DATA, incomingData);\r
- }\r
-\r
- private function incomingData(event:ProgressEvent):void\r
- {\r
- buffer += readUTFBytes(bytesAvailable);\r
- buffer = buffer.replace(/250[^\r\n]+\r\n/, ""); // Get rid of all 250s. Don't need them.\r
- var codeStr:String = buffer.substring(0, 3);\r
- if (!isNaN(parseInt(codeStr)))\r
- {\r
- var code:uint = uint(codeStr);\r
- if (code == 150 || code >= 200)\r
- {\r
- buffer = buffer.replace("\r\n", this.terminator);\r
- }\r
- }\r
-\r
- while (buffer.indexOf(this.terminator) != -1)\r
- {\r
- var chunk:String = buffer.substring(0, buffer.indexOf(this.terminator));\r
- buffer = buffer.substring(chunk.length + this.terminator.length, buffer.length);\r
- throwResponseEvent(chunk);\r
- }\r
- }\r
- \r
- private function throwResponseEvent(response:String):void\r
- {\r
- var responseEvent:CompleteResponseEvent = new CompleteResponseEvent();\r
- responseEvent.response = response;\r
- dispatchEvent(responseEvent); \r
- }\r
- }\r
-}
\ No newline at end of file