### flash 中通过 XMLSocket 监控生产系统(2-2)

关键字：flash、XML、XMLSocket、TextField、Web 方式、及时监控
二、技术介绍
2、XMLSocket 对象
实现了客户端 socket（套接字），允许包含 Flash 应用的浏览器与服务端建立 socket 连接，之后 Flash 应用与服务端就可以相互发送 XML 数据，而且在一个 socket 连接建立之后，在该连接上传送的数据量是没有限制的，直到 socket 连接关闭。
使用 XMLSocket 对象时，必须要注意两点：
o 在 socket 连接上发送的 XML 数据，每条数据以一个 0 字节隔开，详见下面服务端的建立。
o Flash 应用所连接的主机必须是与相应 Web 服务器在同一 IP 地址或是同一子域。所谓同一子域是指在同一域名空间中，例如包含 Flash 应用的网页是从 mail.real-ok.com 下载的，则 name.mail.real-ok.com 就是子域，就允许建立连接，而 real-ok.com 不是子域，Flash 的安全规则就不允许建立连接。
使用 XMLSocket 对象的流程为：
1) 建立一个 XMLSocket 对象
mySocket = new XMLSocket();
2) 对生成的 XMLSocket 对象进行设置
mySocket.onConnect = myOnConnect;
mySocket.onData = myOnData;
mySocket.onXML = myOnXML;
mySocket.onClose = myOnClose;
以上四条语句，分别设置了 mySocket 的四个事件处理函数，其中，myOnConnect、myOnData、myOnXML 分别是带有一个参数的函数，myOnClose 不带参数，当发生相应的事件时，就调用相应的处理函数。
3) 使用 XMLSocket 对象的 connect 方法，建立与服务端的连接 mySocket.connect(null, 6666);
其中，connect 方法有两个参数，第一个参数表示要连接的主机，可以是全限定的域名和者 IP 地址，需要注意一点：当使用 IP 地址时，如 127.0.0.1 需要把它当作字符串来处理，即要用引号把 IP 地址括起来。如果为 null，则连接 Web 服务器(从该 Web 服务器下载了包含当前 Flash 应用的网页)所在的 IP 地址。
第二个参数表示要连接的端口，由于低于 1024 的端口被通用程序所占，Flash 的安全规则不允许在低于 1024 的端口建立连接。connect 方法返回布尔型变量 true 或 false，表示连接是否成功。如：
if (!mySocket.connect(null, 2000)) {
myTextField.text = “连接失败！”;
}
以上语句中，如果连接失败，connect 方法返回 flase，则把 myTextField（为一非静态文字 TextField 对象的实例）的内容设为“连接失败！”。
XMLSocket 对象与服务端进行连接将触发 onConnect 事件，则相应的事件处理函数(见上面流程步骤 2 中的设置)myOnConnect，其中的参数与 connect 方法的返回值意义相同，详见下面的客户端实例。