MFC和Flash的Socket通信之Flash

      笔者所用的flash版本为Adobe Flash CS4 Professional,如果有的读者所用的版本不是该版本而引起的调试错误,可以自己尝试修改。大胆猜测,版本之间的差距不是很多,出去在前版本中在帧中添加代码已经不可取,所以采用的是添加 .as  文件进行代码编程。

     首先新建一个Flash文件,笔者选用的是ActionScript3.0版本的项目。至于项目中的其他内容,这里不加涉及,这里只是涉及通讯部分。

     然后点击“文件”->“新建”->“ActionScript文件”点击确定。生成一个脚本文件,该文件保存的时候可以修改读者自定义的名称。在脚本文件的右侧有个目标选项,选择需要进行socket通讯的*.fla文件。

package {
    import flash.display.Sprite;
    import flash.display.MovieClip;
    import flash.text.TextField;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.ui.Mouse;
    import flash.display.Stage;
    import flash.display.StageDisplayState;
    import flash.display.StageScaleMode;
    import flash.display.StageAlign;
    //Socket通信部分
    import flash.net.Socket;
    import flash.events.*;
    import flash.errors.*;
    import flash.display.SimpleButton;
    //Socket通信部分

    public class Main extends Sprite
    {
        //Socket通信部分
        private var mySocket:Socket;
        //Socket通信部分
        private var star:MovieClip;
        public function Main()
        {
            //隐藏鼠标
            Mouse.hide();
             ////////////////////////////////////////////////////////////////////
            stage.addEventListener(MouseEvent.CLICK, SendData);
            mySocket = new Socket();
            mySocket.addEventListener(Event.CONNECT, OnConnect);
            mySocket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            mySocket.addEventListener(ProgressEvent.SOCKET_DATA, receivedata);
            mySocket.connect("127.0.0.1", 6000);
        }
        private function OnConnect(e:Event):void
        {
            trace("连接成功!");
            mySocket.writeUTFBytes("Test successful2/n");
            mySocket.flush();//send the message
        }
        private function ioErrorHandler(e:IOErrorEvent):void
        {
            trace("连接失败!");
        }
        private function receivedata(e:ProgressEvent):void
        {
//            trace("收到的字节数"+mySocket.bytesAvailable);
            var msg:String = "";
            while (mySocket.bytesAvailable)
            {
                msg += mySocket.readMultiByte(mySocket.bytesAvailable,"utf8");
            }
            trace(msg);
        }
        private function SendData(e:MouseEvent):void
        {
            trace("发送");
            mySocket.writeUTFBytes("I am flash/n");
            mySocket.flush();//send message
        }
    }
}

说明:

  mySocket.connect("127.0.0.1", 6000);
如果是本机上运行分别运行了flash和mfc则可以使用“127.0.0.1”,端口可以自己决定但是两边的程序要相同,并且最好大于大于1024。

创建Flash播放器。在保存Flash的文件内找到*.swf文件,打开。点击“文件”->“播放器”即可。另外要将创建的播放器放置在MFC的Debug文件夹内。

运行MFC程序,即可实现二者之间的通信。

如有疑问,欢迎大家留言,感谢我曾经参考过,但是现在无法确定网址的前辈们。

你可能感兴趣的:(function,socket,Flash,mfc,import,actionscript)