readUTF, readUTFBytes, writeUTF, writeUTFBytes in AS3
Posted on 2007-11-02 by
仔细看看readUTF, readUTFBytes, writeUTF, writeUTFBytes发现还真不一样。
writeUTF时先写两个字节的长度信息,然后再跟具体的UTF-8编码的字节。
比如“睡觉了”是3×3=9个字节,用writeUTF后,共2+9=11个字节。
同理,readUTF时先读两个字节的长度信息,但此时的长度信息有一个用处:一个ByteArray内容同writeUTF(”睡觉了”),然后再做几次writeByte(0),最后用readUTF读取这个ByteArray依然是”睡觉了”3个字。
详细文档如下:
《flash 9.0_cn ActionScriptLangRefV3 flash.utils.ByteArray》
readUTF () 方法
public function readUTF():String
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
从字节流中读取一个 UTF-8 字符串。 假定字符串的前缀是无符号的短整型(以字节表示长度)。
返回 String — UTF-8 编码的字符串。
引发 EOFError — 没有足够的数据可供读取。
另请参见
flash.utils.IDataInput.readUTF()
readUTFBytes () 方法
public function readUTFBytes(length:uint):String
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
从字节流中读取一个由 length 参数指定的 UTF-8 字节序列,并返回一个字符串。
参数 length:uint — 指明 UTF-8 字节长度的无符号短整型数。
返回 String — 由指定长度的 UTF-8 字节组成的字符串。
引发 EOFError — 没有足够的数据可供读取。
writeUTF () 方法
public function writeUTF(value:String):void
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
将 UTF-8 字符串写入字节流。 先写入以字节表示的 UTF-8 字符串长度(作为 16 位整数),然后写入表示字符串字符的字节。
参数 value:String — 要写入的字符串值。
引发 RangeError — 如果长度大于 65535。
writeUTFBytes () 方法
public function writeUTFBytes(value:String):void
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
将 UTF-8 字符串写入字节流。 类似于 writeUTF() 方法,但 writeUTFBytes() 不使用 16 位长度的词为字符串添加前缀。
参数 value:String — 要写入的字符串值。
累了,睡了。
分享到:
相关推荐
3. **数据发送**:通过`writeUTFBytes`或`writeUTF`方法向服务器发送字符串数据,如`socket.writeUTFBytes("发送的数据");`。 4. **数据接收**:当接收到数据时,`data`事件会被触发。可以使用`readUTFBytes`或`...
使用`writeUTFBytes()`或`writeUTF()`方法可以向服务器发送字符串数据。例如: ```as3 socket.writeUTFBytes("Hello, Server!"); socket.flush(); ``` 4. **接收数据**: 当服务器发送数据时,`data`事件会被...
AS3提供了`readUTF()`、`readUTFBytes()`等方法来读取接收到的数据。 ```as3 socket.addEventListener(Event.DATA, onData); private function onData(event:Event):void { var data:String = socket.readUTF(); ...
4. 数据传输:一旦连接建立,XMLSocket对象的`writeUTFBytes()`方法用于发送数据,而`readUTF()`方法用于接收数据。这些数据通常是以UTF-8编码的字符串,但也可以是二进制数据。在实际的游戏开发中,开发者通常需要...
3. 使用Socket的`writeUTFBytes()`方法发送数据,`readUTF()`方法接收数据。 安全沙箱问题: Flash Player出于安全考虑,将内容分为不同的沙箱:本地沙箱、本地与网络交互沙箱和网络沙箱。在AS3中,Socket通信受到...
3. **package.json**:这个文件记录了项目的元数据,如项目名称、版本、作者、依赖项和脚本等,对于npm(Node.js的包管理器)来说至关重要。 4. **test**目录:可能包含单元测试或集成测试代码,用于验证`readutf`...
通过writeUTFBytes和readUTF方法,AS3可以发送和接收字符串数据。 4. **多个Flash实例间的通信**:在"多个flash互相通信demo"中,每个Flash实例可能作为客户端连接到一个共享的服务器,或者它们可以直接彼此建立...
你可以使用AS的`Socket.writeUTFBytes()`和Java的`Socket.getOutputStream().write()`方法发送字符串数据,使用`Socket.readUTF()`和`Socket.getInputStream().read()`方法接收数据。 5. **异常处理**:在网络通信...
AS3中的SOCKET技术是ActionScript 3.0中用于实现网络通信的一种方式,它允许客户端(通常是Flash应用程序)与服务器之间进行低级的、基于TCP/IP协议的双向数据传输。在AS3中,有两种主要的类用于实现SOCKET通信:...
在AIR中,我们可以使用AS3的Socket类来创建和管理Socket连接。这个类提供了打开、读取、写入和关闭Socket连接的方法。 在建立AIR服务端时,我们需要创建一个监听特定端口的Socket服务器。首先,实例化一个Socket...
3. **数据发送与接收**:使用writeUTFBytes()方法发送字符串数据,readUTF()方法读取服务器返回的数据。同样,客户端也需要处理可能的错误和断开连接的情况。 4. **事件驱动编程**:AS3.0的网络操作通常是异步的,...
dos.writeUTF(userName); dos.writeUTF(mobilePhone); dos.writeUTF(email); dos.writeUTF(phone); baos.close(); dos.close(); return baos.toByteArray(); } public static Account deserialize(byte[]...
以上代码利用Socket对象和ServerSocket对象进行简单的网络交互,即客户端通过DataOutputStream对象的writeUTF()方法向服务器发送消息,服务器利用DataInputStream对象的readUTF()方法读出数据。 看上去挺好,但...
roleName = in.readUTF(); } catch (Exception e) { e.printStackTrace(); } } } ``` #### 2. User类的设计 同样地,在`User`类中也实现了`Serializable`接口,并且包含了序列化和反序列化的方法。 ```java ...
3. **从Socket服务器读取数据**:使用`Socket.readUTF()`或`XMLSocket.readUTF()`方法读取接收到的数据。通常需要监听`Event.DATA`事件,以便在有新数据时进行处理。例如: ```actionscript private function on...
str = in.readUTF(); out.writeUTF("你好,我是服务器端"); System.out.println("服务器收到:" + str); while (true) { str = in.readUTF(); out.writeUTF(str); System.out.println("服务器收到:" + str); ...
例如,你可以使用`Socket.connect()`方法连接到指定的IP地址和端口号,然后使用`Socket.writeUTFBytes()`发送数据,`Socket.readUTF()`接收数据。 Java端,我们通常会创建一个ServerSocket来监听客户端的连接请求。...
例如,`readUTF()`和`writeUTF()`方法用于读写UTF-8编码的字符串,`Integer.parseInt()`用于将字符串转换为整数,而`writeUTF()`则用于将字符串写入输出流。 4. **示例代码解析** 示例代码展示了服务器端的基本...
3. **数据发送与接收**:通过`Socket.writeUTFBytes()`发送数据,监听`Event.ACTIVATE`和`Event.DEACTIVATE`事件来处理数据接收。数据到达后,用`readUTF()`方法读取并解码。 四、消息处理 1. **广播消息**:...