学院首页>图形图像>FLASH>Flash MX 2004中的XML应用之原理篇

Flash MX 2004中的XML应用之原理篇

作者: 来源: 添加时间:2006-5-23 7:20:03
2、使用XMLSocket对象

  在网络通讯中,使用XMLSocket对象的通讯方式为Socket,(所谓的Socket,可以将它想象为一条通路,需要通讯的时候,在客户端跟服务器端建立一个连接,然后传送内容,通讯完毕后再撤销这个通路)。Flash端跟服务器端的通讯模式为:先在Flash端跟服务器端建立一个Socket连接,生成XML文件后,通过所建立的Socket连接将XML文件发送到服务器端,服务器端解释所接收到的文件,对数据进行相应的操作后,生成一个XML文件,通过Socket连接发送到Flash端,Flash端解释XML文件后就得到所需要的数据。如此循环,操作完成后关闭Socket连接。有点难懂,可以参考图2仔细想想。

  下面分别解释在Flash端跟服务器端的东西。

  A、在Flash端:XMLSocket对象中,只有三个方法和四个事件,都是在Socket通讯时候用的,对XML文件的操作还是要靠XML对象。比如,下面是一些简单的Socket操作:

//声明XMLSocket对象
var mySocket=new XMLSocket();
//根据IP地址和端口连接服务器
mySocket.connect("127.0.0.1",9980);
//连接成功与否的判断
mySocket.onConnect=function(sucess){
if(success){
trace("连接成功");
}else{
trace("连接失败");
}
}
//当接收到XML文档的时候,触发此函数
mySocket.onXML=function(xmlDoc){
……
}

  B、在服务器端:选用服务器端的开发语言的标准是,起码要能够做Socket方面的操作(复杂的应用当中还需要多线程、负载平衡等方面的东西)。比较常用的有C/C++、java,其他的比如Delphi、Vb等工具对Socket的操作就有点不方便。要开发一个高效率、稳定、可扩展的服务器端程序并不是一件很简单的事情,最好能找点相应的资料深入学习一下,刚入门的时候,学习的重点可以放在Socket和多线程上面。下面以比较流行的java语言来举例说明服务器端程序的简单架构:

//运用多线程防止服务器阻塞
public class MultiThreadServer extends Thread
{
private ServerSocket listen_socket;
public MultiThreadServer(int port)
{
try
{
listen_socket = new ServerSocket(port); //创建一个服务器端的Socket
this.start(); //启动多线程
}
catch(IOException e) //捕捉异常
{
e.printStackTrace();
}
}

//下面为服务器监听线程的主程序。
public void run()
{
while(true) //死循环,一直在端口上监听有无客户端的Socket连接
{
try
{
//有客户端连接上来,创建一个相应的Socket,并启动响应的函数
Socket client_socket= listen_socket.accept();
SockState sstate=new SockState(client_socket);
OperThread oper=new OperThread(sstate);
}catch(Exception ee)
{
System.out.print("MultiThreadServer run:"+ee.getMessage());
}
}
}
}

  3、XML在Flash中主要涉及两方面的应用,本地应用和网络应用。

  本地应用主要是存取XML文件中所保存的数据,这里所指的数据并不一定限定是文本数据,也可以是图片数据,声音数据等等。比如可以用Flash + XML来做图片管理器,歌曲列表管理器,用处还是比较大的,也比较灵活。

  网络应用是XML在Flash中的主要用途,它的优缺点在前面内容中已经提到。比如说,可以用来做电子商务方面的应用、论坛、聊天室等等。

第 3 页,共 3 页 [1] [2] [3]
站内搜索