MFC和Flash的Socket通信之Flash
2010-09-15 12:31
169 查看
笔者所用的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程序,即可实现二者之间的通信。
如有疑问,欢迎大家留言,感谢我曾经参考过,但是现在无法确定网址的前辈们。
首先新建一个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程序,即可实现二者之间的通信。
如有疑问,欢迎大家留言,感谢我曾经参考过,但是现在无法确定网址的前辈们。
相关文章推荐
- Flash Socket通信的安全策略问题
- java与FlashSocket通信安全(转载)
- Flash Socket通信的安全策略问题 843端口
- Socket 学习之 MFC:简单通信
- 利用flash与.net下socket通信实现WEB页面的“推”(一)基本概述
- flash与c++进行Socket进行简单通信
- vc++/mfc socket网络通信多客户端和服务端安全问题,服务端只处理授权客户端
- Flash Socket通信的安全策略
- flex与socket通信之成功----之成功补充篇(关于C#建立FLASH服务端的安全沙箱问题)
- 利用Flash作为桥梁连接WEB页面和服务器端Socket通信,达到服务器主动"推"客户端的效果
- Mina使用AMF3与Flash Socket通信的"粘包"问题
- mfc socket udp通信
- [教程] Flash Socket通信的安全策略问题 843端口
- flash/flex 与服务器socket通信
- 基于socket通信的,利用MFC实现TCP通信的C/S架构程序
- Flash使用xmlsocket与.net服务端异步通信
- flex flash socket通信实例
- 解决flash发布为html格式后无法进行socket通信的问题
- 【Socket】MFC之编写聊天通信代码
- FlashSocke 通过flash进行socket通信(as代码)