使用XML实现Flash与服务器通信

C#实现843端口安全策略服务器项目实战 安全策略服务器在网络通信中扮演着至关重要的角色,尤其是在Flash进行跨域Socket通信时。它通过监听843端口,为客户端提供跨域访问权限的策略文件(XML格式),确保通信的安全性与合法性。该机制源于Flash Player的安全沙箱策略,防止未经授权的跨域数据访问。在C# Socket编程中,我们可以通过创建TCP服务器监听843端口,接收Flash客户端的策略请求,并返回相应的XML策略文件。 阅读详情

这是一篇讲解如何使用XML实现Flash与通信的入门级实例教程。通过本例的学习,我们将了解使用XML开发Flash RIAs的基本流程。

从Flash Player 5开始,就可以使用XML对象来实现Flash与后台通信。Flash浏览器与XML数据之间的直接进行数据交换,并且同LoadVars函数一样,都是以字符串形式传递的。后台语言作为XML数据和数据库的中介,负责将数据库的数据动态生成XML,将XML变动的数据更新回数据库。如下图所示:

XML对象可比LoadVars对象高级多了,它处理的是XML元素,XML元素本身有意义而且格式良好,利用我们和电脑识别, 它早已成为数据交换格式的标准。而LoadVars用来处理变量,LoadVars中的变量很少有什么实际意义,如果用来读取数据库中的数据,变量会 很多。而XML对象就简单多了,与XML相关的技术很多,比如DOM、SOM、SMLT、SAX2等。即使你对这些技术不了解,你也可以用后台语言输出数 据的方式来实现。如果你对而且服务器端脚本语言的输出数据的格式不了解,请看一下http://www.riafan.com/article/flash/flash-exchange-date-with-server.html。

使用XML对象来实现Flash与后台通信,主要是通过XML对象的sendAndLoad方法。该方法和LoadVars的sendAndLoad方法 类似,它把指定的XML对象编码为XML文档,使用POST方法将其发送到指定的URL,下载服务器的响应,并将其加载到参数中指定的 resultXMLobject 中。服务器响应加载的方式与 XML.load方法使用的方式相同。

下面是一个简单的ASP+XML+Flash查询实例。XML.sendAndLoad方法传输一个包含学生姓名的XML包,并使用onLoad方法来处理来自服务器的响应。

import mx.controls.Alert;
//新建用来响应的XML对象
var response_xml= new XML();
//响应时忽略XML空白
response_xml.ignoreWhite = true;
function showResult() {
	//清除所有项目
	student_dg.removeAll();
	response_xml.onLoad = function() {
		var nodes = this.firstChild.childNodes;
		var len = nodes.length;
		if (len < 1) {
			Alert.show("没有搜索到相应的记录!", "提示信息");
		} else {
			//将XML对象解析成项目对象
			for (var i=0; i < len; i++) {
				student_dg.addItem({学号:nodes[i].attributes.id,
				姓名:nodes[i].attributes.name, 
				班级:nodes[i].attributes.cname});
			}
		}
	}
}
//新建用来发送请求的XML对象
var request_xml = new XML();
//创建一个新的 元素search
element = request_xml.createElement("student");
function click() {
	//将输入的学生姓名赋值给search元素name属性
	element.attributes.name = name_ti.text;
	//将search元素追加到 对象中
	request_xml.appendChild(element);
	//传输一个包含学生姓名的XML包
	request_xml.sendAndLoad("http://localhost/student/search.asp",response_xml);
	showResult();
}
search_btn.addEventListener("click", this);

后台以ASP为例,ASP要能读取SWF文件请求的XML元素,得用XML DOMDocument,这就要求服务器必须安装有MSXML2.DOMDocument组件。至于ASP怎样输出动态XML文件,可以用ASP的Response.Write方法,当然同样也可以用XML DOMDocument对象来实现。不过,理论上前者的速度会快些。

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%
<%
//建立XML DOM对象
var doc = new ActiveXObject("MSXML2.DOMDocument");
doc.async =false;
var requestXml=Request.Form();
//判断是否接收到SWF文件传过来的XML包
if(requestXml.Count >0){
	//加载XML包
	doc.loadXML(requestXml);
	//取得根元素
	var rootNode = doc.documentElement;
	//取得根元素的name属性值
	var name = rootNode.attributes[0].nodeValue;
	//设定为XML文件
	Response.ContentType="text/xml";
	//输出XML文件声明
	Response.Write("<?xml version=/"1.0/" encoding=/"UTF-8/"?>");
	var conn = new ActiveXObject("ADODB.CONNECTION");
	strconn = "DBQ="+Server.MapPath("Exam.mdb")+";Driver={Microsoft Access Driver (*.mdb)};";
	conn.Open(strconn);
	var rs = new ActiveXObject("ADODB.RECORDSET");
	var sql = "Select StudentID,Name,ClassName FROM Student Where Name LIKE '"+name+"%'";
	rs.Open(sql,conn,1,1);
	var i=0;
	//输出根标记
	Response.Write("<item>");
	while(!rs.EOF){
		//输出子元素及其属性
		Response.Write("<student id=/""+rs("StudentID")+"/" name=/""+
		rs("Name")+"/" cname=/""+rs("ClassName")+"/"/>");
		i++;
		rs.MoveNext();   
	}
	Response.Write("</item>");
	rs.Close();
	conn.Close();
}%>

点击此处查看实例效果,点击此处下载附件,该附件中还包含此实例的各版本后台脚本。

注意:

  • 测试PHP版时,由于使用了$GLOBALS["HTTP_RAW_POST_DATA"]全局变量,请打开php.ini,将always_populate_raw_post_data = On前的;去掉;这是一种不得以的方法,如果有哪位找到好方法,请告诉我一下。
  • 对于CF版,因为在交换数据的过程中,CF解析XML时不接受汉字。因此,我们需要在Flash中将要传送传送的参数进行URL 编码,请将name_ti.text修改为escape(name_ti.text)。

其实,我个人并不主张用XML来实现Flash与服务器端的通信,我宁愿用LoadVars和Flash Remoting。

 

http://www.riafan.com/article/flash/flash-exchangedata-with-xml.html

Flash与服务器端通信技术详解与实战 在互联网应用发展的早期阶段,Adobe Flash凭借其强大的多媒体处理能力和跨平台兼容性,广泛应用于网页动画、视频播放及富客户端交互系统中。其中,Flash与服务器端的通信能力是其实现动态数据交互的核心机制。本章将从整体架构出发,深入剖析Flash与后端服务进行数据交换的技术基础,涵盖通信模型的基本组成、网络协议支持(如HTTP、RTMP、XMLSocket)、以及客户端-服务器之间的请求响应模式。graph LRA[Flash客户端] -- HTTP/HTTPS --> B[Web服务器] 阅读详情

相关推荐

汽车测试工程师工作准则

希望这份综合的工作规范能帮助你更好地规划职业发展。如果你对某个特定领域,比如自动驾驶测试或智能座舱测试,有进一步的兴趣,我很乐意提供更具体的信息。

qq_40844444的博客 453

基于STM32f103的RS458通信

目录 简介1. 来历2. RS_485标准3. 连接方式 在写这个分享之前首先要感谢学校老师对我的支持,上上周没事就拿了老师教学用的开发板来玩。用RS-485和modbus协议实现了主从机通信,这篇讲的是我做的RS-485,有什么问题可以留言。 简介 1. 来历 通常的微处理器都集成有 1 路或多路硬件 UART 通道,可以非常方便地实现串行通讯。在工业控制、电力通讯、智能仪表等领域中,也常常使用...

qq_45529757的博客 1万+

UVC协议在STM32H7上的移植实战案例

手把手带你把UVC协议移植到STM32H7平台,重点解决USB高速枚举、视频流控制与YUV数据打包等关键问题。基于HAL库实现符合UVC 1.5规范的即插即用摄像头功能,让嵌入式设备轻松变身标准UVC视频源。

weixin_42437253的博客 397

xml方式封装通信数据方法

xml方式封装通信数据方法 public static function xmlToEncode($data) { $xml = ""; foreach($data as $key => $value) { $attr = ""; if(is_numeric($key)) { $attr = " id='{$key}'"; $key = "item"; } $xml .=

NiceGY 1861

105. replace( )函数

【目录】

weixin_63986098的博客 1万+

Multisim滞回比较器电路设计与仿真实战:从理论到应用

本文详细介绍了Multisim滞回比较器电路设计与仿真实战,从基础理论到实际应用全面解析。通过门铃原理类比解释滞回特性,提供2-5V阈值检测电路的设计步骤和Multisim仿真技巧,并延伸至温度控制系统等实际工程应用,帮助读者掌握电路设计与优化的核心方法。

assembly8low的博客 1082

flash与ASP通信的几种方法

flash与ASP通信的几种方法 第 1 页 一、使用loadVariables 第 2 页二、使用LoadVars 第 3 页三、使用xml     一个例子简单的描述了如何通过GET方法向服务器端的ASP发送请求: _root. pushAction = function(URL) {    this.loa

海纳百川的专栏 645

Android 埋点信息分析——statsd框架

StatsPullAtomService 用以采集数据,并将数据填充到参数中,在StatsManager.PullAtomCallbackInternal 中会转换成 Parcel 格式传入到 native。 StatsCallbackPuller::PullInternal 中会回调StatsManager.PullAtomCallbackInternal 的onPullAtom,该函数中会回调StatsCallbackPuller::PullInternal 中定义的PullResultRecei

私房菜 2630

Flash与.NET的通信(二):XML对象的应用

Flash与.NET的通信(二):XML对象的应用 简介: 本次测试主要使用Actionscrīpt的XML对象,Flash客户端发送XML(<SendInfo><Value>abc</Value></SendInfo>)给服务器(ASP.NET),服务器将获得<Value>的字符值转化成大写并以XML格式(<Re...

weixin_30443895的博客 86

【软件系统架构】系列十一:面向对象技术—sysML

摘要: SysML(系统建模语言)是UML的扩展,专为复杂系统工程设计,支持硬件、软件、人员等跨领域建模。其核心包括9种图:4种结构图(如块定义图BDD、内部块图IBD)、4种行为图(如活动图AD、序列图SD)和需求图(REQ),覆盖需求、结构、行为及参数约束。相比UML(面向软件),SysML精简图表(9 vs 13),强化需求追踪与性能分析(如参数图PD),并支持MBSE(基于模型的系统工程)。需求关系(如满足、验证、派生)在需求图中明确关联设计实现,形成闭环管理。SysML是UML的子集与系统工程扩展

moton2017的博客 1909

Microsemi Libero使用技巧11——CoreUARTAPB RX管脚分配时不显示

调用串口IP核CoreUARTAPB,并例化到顶层设计,发现UART_RX管脚在进行管脚分配时没有显示出来,最后发现是CoreAPB3总线IP核配置不对导致,改为如下配置后正常。

whik1194的博客 758

转:Flash与.NET的通信(一):XMLConnector的应用

Flash与.NET的通信(一):XMLConnector的应用 一:简介 XML是已成为Internet中结构化数据交换的标准,大多数服务器技术(如ASP.NET)都支持XML。从Flash MX开始,对XML也提供了良好的支持,我们将通过XML作为服务器端ASP.NET与客户端Flash的数据交换。 XMLConnector 组件(仅限Flash...

deqiping4837的博客 121

42、使用mmrotate中k3det进行旋转目标检测,并进行mnn部署和ncnn部署

基本思想:仍然是身份证分割,并进行ncnn和mnn的c++的部署开发

sxj731533730 5711

flash网游常用技术-XMLSocket

这是LoadVars(XML)、Flash Remoting、Webservice、XMLSocket四种方法整理的最后一篇,也让大家久等了(没想到前几篇的文章在网上挺受欢迎的,其中还有一人给我发邮件,相看我这个最后一篇,哈哈,还是挺欣慰的。对转载我要声明一下,首先这几篇文章欢迎转载的,但要说明文章的作者,以及文章的原址吧,我发现有些网站转载,连作者都不写了或者写的就不对。这一点会影响我以后写文章

qq_16490557的专栏 486

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Flash Socket通信的安全策略问题

弄了半天没有解决,在ide里发布没为,放到web上就安全问题。哎 记个笔记:虽然还没有搞定.   参考文章 flash xmlsocket policy 问题 Policy file changes in Flash Player 9 Setting up a socket policy file server Understanding Flash Player 9 April 2...

weixin_33743248的博客 85

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Flash与html及服务器的通信

flash与html及服务器的通信 <!--google_ad_client = "pub-7058131363132249";/* 468x15, 创建于 08-6-3 */google_ad_slot = "4187223796";google_ad_width = 468;google_ad_height = 15;//--> <script ty

Tisty的兵工厂--新Blog:http://www.UbuntuSky.cn 3295

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Flash与服务器通信简介

<br />无论是传统的Web应用程序还是RIA很多时候需要和服务器连接。当我们用Flash进行典型的“三层开发”时,Flash 播放器取代了传统层客户端浏览器。所谓Flash与服务器端的通信,就是指 Flash如何跟逻辑层的服务器端编程语言交换数据。<br />我们可以把整个服务器端的程序当成一个黑盒子,不用去了解它怎样连接数据库,又如何存取数据表的内容。但是我们必须知道它如何处理结果显示在Flash客户端。<br /><br />不论你采用那种技术来开发服务器端程序,都应该遵守以下原则:接受资料的客户端

Yongbo的技术博客 1073

flash java 通信_FLASH与服务器通讯 (JAVA)

1.FLASH 通过URL地址获得服务器数据。这种方式最为简单,就像在浏览器的地址栏里面敲一样。先建立一个URLRequest,然后用URLLoader载入就行了。下面这个是载入一个图片,html页面也用同样方法载入。public function Net(){var loader:URLLoader;var request:URLRequest = new URLRequest("http://...

weixin_33167456的博客 414

使用LoadVars实现Flash与服务器通信

<br />这篇教程简单讲解如何使用LoadVars实现Flash与HTTP Service通信。通过本例的学习,我们将了解怎样整合LoadVars对象和HTTP Service开发Flash RIAs的基本流程。<br />从Flash Player 6开始,可以使用LoadVars对象来实现Flash与后台通信。同loadVariables函数一样,它只能接收MIME格式的字符串变量。而且遇 到特殊字符时,必须进行URL编码。<br />LoadVars对象通过其sendAndLoad方法将对象中的属性

Yongbo的技术博客 579

使用xml--flash与ASP通信的几种方法

Flash中的XML对象也有方法可以将XML数据向服务器发送。即send和sendAndLoad。send方法向某个 URL 传递 XML 对象,返回的信息都被发送到另外一个浏览器窗口;sendAndLoad 方法向某个 URL 发送一个 XML 对象。返回的信息都放在一个XML对象中。在某种程度上, XML的send方法和sendAndLoad方法类似于loadVars对象的send方法和sen

sukyle的专栏 766

Flash和服务器间的通信

Flash和服务器间的通信核心:XMLSocket对象    这一部分和下一部分都将以Flash为主,在这一部分我们来看看Flash是如何和服务器端进行通信(主要是客户端通过Flash如何发如何发送信息到服务器端[远程计算机],以及如何接收服务器端[远程计算机]发来的信息,至于服务器端的socket如何处理部分将在后面专门讲到),下一部分是Flash和WEB页面的通信,在阅读这两部分前最好对F

水上漂的专栏 2291

flash与html及服务器的通信

flash与html及服务器的通信 前一段时间有机会接触到flash编程,学习了一些方法,在次记录以备后用:) 1.html与flash通信 html要将自己的参数传给flash内部,我目前知道只有一次机会,也就是flash播放器加载的时候传入。传入的方法有2种: 1>直接url拼接。也就是模拟get传参。 [code="html"] [/...

yzgfbj 213

利用flash与.net下socket通信实现WEB页面的“推”(二)Flash和服务器间的通信核心:XMLSocket对象

(二)Flash和服务器间的通信核心:XMLSocket对象    这一部分和下一部分都将以Flash为主,在这一部分我们来看看Flash是如何和服务器端进行通信(主要是客户端通过Flash如何发如何发送信息到服务器端[远程计算机],以及如何接收服务器端[远程计算机]发来的信息,至于服务器端的socket如何处理部分将在后面专门讲到),下一部分是Flash和WEB页面的通信,在阅读这两部分前最

POSSIBLE's BLOG 4361

Flash +XML+PHP5

网上已经有很多关于Flash MX+XML+asp文章,这种技术已经很成熟了,因此应用也比较广泛。但是很难找到关于后台是php代码实现的例子,正好有空,研究了一下。顺便把网上的一些资料整理一下,也许有用得着的地方。1. 原理网站采用Flash做前端,客户端所有的操作都用Flash实现,服务器端负责从数据库读取和处理数据。客户端和服务器端的数据通信则 通过XML实现。简单点说就是服务器端把数据从数据

cwwhy的专栏 1869
上一篇: 利用谷歌来入侵
下一篇: 网页被注入iframe恶意代码清除工具
sukyle
博客等级 码龄18年 41粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值