XMLSocket相对于URLLoader是低层次的类,但是对于基于二进制传输的Socket类,它却非常的高级。开发者使用XMLSocket不需要关心具体的信息流和信息编码,而是在XML对象和文档的层面发送和接收信息。
创建XMLSocket连接的方法是使用XMLSocket类的构造函数,并提供地址和端口号:
XMLSocket(host:String = null, port:int = 0) 构造函数,创建一个新的 XMLSocket 对象。
第一个参数是一个字符串,指定XMLSocket连接服务器的地址。地址可以是完整的域名,或数字形式的IP地址。如果发出此调用的SWF文件正在Web浏览器中运行,则host必须与SWF文件位于同一个域中。如果指定参数为null,则连接到SWF文件存储位置的服务器。
第二个参数是端口号,如果没有进行特殊的配置,XMLSocket连接端口号必须大于等于1024。与XMLSocket连接服务器的服务程序端口一致。
如果没有提供充足的参数,则建立一个未连接XMLSocket对象。可以在代码中使用connect()方法再次指定连接:
connect(host:String, port:int):void 使用指定的 TCP 端口建立到指定 Internet 主机的连接。
XMLSocket提供的方法较少,每个方法执行特定的功能,例如,XMLSocket类中不存在执行写入功能的多个专业方法,而是仅提供了一个send()方法。send()方法方法接受一个对象。如果是XML对象,则该字符串是此XML对象的XML文本表示形式。如果参数对象不是XML对象,则转换为字符串发送,具体的发送内容取决于对象的类型。
send(object:*):void 将 object 参数中指定的 XML 对象或数据转换成字符串,并将其传输到服务器,后面跟有一个零 (0) 字节。
发送数据的前提是XMLSocket对象必须是真正存在的连接。如果XMLSocket对象没有连接到服务器,则XMLSocket.send()操作将会失败。
即使套接字存在的持续连接,但是调用send()方法后,并不会立刻发送数据。send()方法的发送操作是异步的,调用后立即返回,数据可能会再合适的时机传输。调用XMLSocket对象的send()方法,不返回指示数据是否成功传输的值,只能通过检测事件捕捉错误。在XMLSocket类中,没有提供类似flush的方法。发送的时机由FlashPlayer控制。