509 第 24 章 Socket 编 程 Socket Programming 24.0 简 介 Introdu ction socket ( 套 接 字 ) 连 接 可 让 Flash Player 通 过 指 定 的 网 络 端 口 , 向 ( 从 ) 服 务 器 发 送 ( 加载 ) 数 据 。socket 连 接 和第 20 章 的 服 务 器 连 接 之间的 主要差别, 在于 socket 连 接 在数据 传输完成后不会自动关闭。 当 socket 连 接 产生时, 连 接 会一直开着, 直到客户端 ( Flash Player) 或服 务 器 明确予以关闭。因此, socket 可 以进行特殊类型的 通 信, 称为数 据 推送 ( data push), 也就是说服务 器 可 以在任何时刻把信息发 送 给 Flash Player, 而不需要 Player 本身提出请求。 socket 连 接 一般用于创建多用户应用程 序。这种应用程 序的 实例之一就是在线聊天室。聊天程 序可 能由一个中央聊天服 务 器 以及几个连 接 的 Flash Player 客户端 所组成。每次客户端 .swf 发 送 消息到服 务 器 时, 服 务 器 就会确认该由哪个客户端 接 收该消息, 然后, 通 过打开的 连 接 把消息推送 给特定 客户端 。就此而言, 接 收方客户端 并没有要求那道消息, 而是消息直接 由服 务 器 推送 给它。当客户端 关闭连 接 时, 服 务 器 会通 知其他客户端 , 某人已登出系统了。 Flash Player 可 以对 socket 服 务 器 做两种 socket 连 接 。这两种 socket 连 接 在行为和操作上都十分类似, 只有少数 差别。第 一种是 XML socket 连 接 , 类似于 Flash Player 前几版的 XMLSocket。Flash Player 9 新的 socket 连 接 是二进制( binary) socket 连 接 。 要建立 XML socket 连 接 时, 需使用 flash.net.XMLSocket 类。要建立二进制 socket 连 接 时, 需使用 flash.net.Socket 类。 XML socket 连 接 的 焦点是文本。客户端 和服 务 器 通 信的 方式是交换包含数 据 的 XML 包。 │ 第 24 章 : Socket 编 程 510 动 作 是 通 过 分 析 XML 包 的 内 容 实 施 的 。 二 进 制 socket 连 接 是 ActionScript 3.0 新 增 的 功 能 , 可 以 启 用 原 始 连 接 ( raw connection),以 传 输 二 进 制 ...