socket

by yurji
♥0 | Line 83 | Modified 2011-09-16 08:32:22 | MIT License
play

ActionScript3 source code

/**
 * Copyright yurji ( http://wonderfl.net/user/yurji )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/ssBJ
 */

package Socket
{
     import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.IOErrorEvent;
        import flash.events.KeyboardEvent;
        import flash.events.ProgressEvent;
        import flash.events.SecurityErrorEvent;
        import flash.net.Socket;
        import flash.text.*;
        import flash.ui.Keyboard;

        public class Main extends Sprite
        {
                private var socket:Socket;
                private var textView:TextField;
                private var textBoard:TextField;

                public function Main()
                {
                        textView        = addTextField( 5, 10, 230, 190 );
                        textBoard       = addTextField( 5, 200, 230, 20 );

                        socket = new Socket( "127.0.0.1", 9000 );

                        socket.addEventListener( Event.CONNECT, onConnect );
                        socket.addEventListener( Event.CLOSE, onClose );
                        socket.addEventListener( SecurityErrorEvent.SECURITY_ERROR, onSecurtyError );
                        socket.addEventListener( IOErrorEvent.IO_ERROR, onIOError );

                        socket.addEventListener( ProgressEvent.SOCKET_DATA, onRead );
                        addEventListener( KeyboardEvent.KEY_DOWN, onWriteBoard );
                }

                public function onConnect( event:Event ):void
                {
                        writeView( "server connected" );
                }

                public function onClose( event:Event ):void
                {
                        writeView( "server close" );
                }

                public function onSecurtyError( ev:Event ):void
                {
                        writeView( "Security error." );
                }

                public function onIOError( ev:Event ):void
                {
                        writeView( "IOError." );
                }

                public function onRead( event:Event ):void
                {
                        writeView( socket.readUTFBytes( socket.bytesAvailable ) );
                }

                public function onWriteBoard( event:KeyboardEvent ):void
                {
                        if( !socket.connected ) return;
                        if( event.keyCode == Keyboard.ENTER )
                        {
                                socket.writeUTFBytes( textBoard.text );
                                socket.flush();
                                textBoard.text = '';
                        }
                }

                public function writeView( str:String ):void
                {
                        if( textView.text == '' )
                        {
                                textView.text = str;
                        }
                        else
                                textView.text = textView.text + '\n' + str;
                }

                private function addTextField( x:int, y:int, w:uint, h:uint ):TextField
                {
                        var textField:TextField = new TextField();
                        addChild( textField );
                        textField.x                     = x;
                        textField.y                     = y;
                        textField.width         = w;
                        textField.height                = h;
                        textField.text          = "";
                        textField.selectable    = true;
                        textField.border                = true;
                        textField.type          = TextFieldType.INPUT;
                        return textField;
                }

        }
}