![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2009
Сообщений: 33
|
Вот пример на Flex, коннектится к сокет-серверу, отправляет запрос, получает строку.
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#CCCCCC" height="449" width="676" pageTitle="Test application"> <mx:TextArea id="tesst" right="10" bottom="36" top="71" width="254" text="{tracer}"/> <mx:Button label="Connect" color="#5E3601" x="427" y="11" click="initConnect()"/> <mx:Button x="412" y="41" label="Disconnect" click="sendRequest('EXIT')"/> <mx:Button label="Update list" right="82" top="11" click="sendRequest('GetList')"/> <mx:Script> <![CDATA[ import flash.net.Socket; [Bindable] public var tracer:String; public var sock:Socket; public function initConnect():void { sock = new CustomSocket("localhost", 3000); configureListeners(); } public function configureListeners():void { sock.addEventListener(Event.CLOSE, closeHandler); sock.addEventListener(Event.CONNECT, connectHandler); sock.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); sock.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); sock.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler); tracer += "begin"; } private function writeln(str:String):void { str += "\n"; try { sock.writeUTFBytes(str); } catch(e:IOError) { tracer += "ERROR#" + e.errorID + ", " + e.name + ", " + e.message; } } private function sendRequest(str:String):void { tracer += "sendRequest \r"; writeln(str); sock.flush(); } private function readResponse():void { var lenght:uint = sock.bytesAvailable; try { var str:String = sock.readUTFBytes(lenght); tracer += "Read from socket " + lenght +" byte: " + str + "\r"; } catch(e:EOFError) { tracer += "ERROR#" + e.errorID + ", " + e.name + ", " + e.message; } } private function socketDataHandler(event:ProgressEvent):void { tracer += "socketDataHandler: " + event + "\r"; readResponse(); } private function closeHandler(event:Event):void { tracer += "closeHandler: " + event + "\r"; } private function connectHandler(event:Event):void { tracer += "connectHandler: " + event + "\r"; } private function ioErrorHandler(event:IOErrorEvent):void { tracer += "ioErrorHandler: " + event + "\r"; } private function securityErrorHandler(event:SecurityErrorEvent):void { tracer += "securityErrorHandler: " + event + "\r"; } ]]> </mx:Script> </mx:Application> nullbeginconnectHandler: [Event type="connect" bubbles=false cancelable=false eventPhase=2] // законнектились. все ок sendRequest // отправили запрос socketDataHandler: [ProgressEvent type="socketData" bubbles=false cancelable=false eventPhase=2 bytesLoaded=63 bytesTotal=0] // получили ответ в 63 байта Read from socket 0 byte: // а вот тут самое интересное, bytesAvailable вернул 0, ничего не прочитали. Подозреваю, что где-то нубская ошибка, но поймать не могу. Если не трудно - ткните ![]() |
![]() |
Часовой пояс GMT +4, время: 06:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|