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)else } //当接收到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) //捕捉异常
}
//下面为服务器监听线程的主程序。 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中的主要用途,它的优缺点在前面内容中已经提到。比如说,可以用来做电子商务方面的应用、论坛、聊天室等等。 |