`
androider
  • 浏览: 748556 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

AS3的socket的ProgressEvent.SOCKET_DATA

阅读更多
AS3.0中使用Socket接收数据我们必须使用ProgressEvent.SOCKET_DATA事件。这个事件在帮助文档中是这样描述的 ——在套接字接收到数据后调度。
而事实却并非如此,做过一次尝试,服务器发送了20000次数据而rogressEvent.SOCKET_DATA事件只产生了2000多次。
那么为什么说"服务器发送了20000次数据而rogressEvent.SOCKET_DATA事件只产生了2000多次",
因为flash socket使用的TCP/IP协议, 这个协议跟UDP不同,它不是以单个"包"的形式发送数据,它发送的是"流数据",所以即便你发来20000次数据(也就是你所想象的20000个包),TCP协议也是将它视作"流"发送.
换句话说,你的20000次数据,实际上只被分割成了2000多个"包"来发送,因此socket收到了2000多个包,,因此只产生了2000多次的事件.
在局域网内,或者本机127.0.0.1(如果是internet的话,因为网络延迟,没法严格测试),
将服务器发"包"频率降低,,比如:10ms,或者20ms发送一次, 再试试发送2万个包,看看产生几次事件?
分享到:
评论

相关推荐

    FLASH AS3 SOCKET收发16进制示例

    `用于监听连接成功事件,`socket.addEventListener(ProgressEvent.SOCKET_DATA, onData);`用于监听接收到数据的事件。 4. **发送数据**:当连接建立后,你可以使用`writeUTFBytes()`或`writeBytes()`方法发送数据。...

    java和as3 socket通信 解决安全沙箱问题

    socket.addEventListener(ProgressEvent.SOCKET_DATA, onData); ``` 3. 使用Socket的`writeUTFBytes()`方法发送数据,`readUTF()`方法接收数据。 安全沙箱问题: Flash Player出于安全考虑,将内容分为不同的沙箱...

    Flex 的socket通信

    Flex中的Socket类是AS3的一部分,位于`flash.net`包中,它提供了建立和管理TCP套接字连接的能力。Socket类允许我们创建一个到服务器的连接,并通过这个连接发送和接收二进制或文本数据。 2. **连接服务器** 使用...

    全AIR 的 Socket通信(air服务端、air客户端)

    在AIR中,我们可以使用AS3的Socket类来创建和管理Socket连接。这个类提供了打开、读取、写入和关闭Socket连接的方法。 在建立AIR服务端时,我们需要创建一个监听特定端口的Socket服务器。首先,实例化一个Socket...

    Flex3+Socket编程示例

    socket.addEventListener(ProgressEvent.SOCKET_DATA, onData); socket.addEventListener(IOErrorEvent.IO_ERROR, onError); socket.addEventListener(Event.CLOSE, onClose); ``` 接下来,我们编写处理这些事件的回...

    纯as3链接本地数据库

    socket.addEventListener(ProgressEvent.SOCKET_DATA, onData); socket.connect("localhost", 3306); ``` 在上述代码中,我们创建了一个XMLSocket实例,绑定了几个事件监听器,并尝试连接到本地主机的3306端口...

    as3带进度条上传实例

    socket.addEventListener(flash.events.ProgressEvent.SOCKET_DATA, recieve); socket.addEventListener(flash.events.IOErrorEvent.IO_ERROR, ioerror); ``` - **连接服务器**:使用`connect`方法指定服务器...

    (AS3)socket+客户端与服务端+实例

    4. **事件驱动**:AS3的Socket通信是基于事件驱动的,例如Socket事件(ConnectEvent.CONNECT、DataEvent.DATA、ProgressEvent.PROGRESS等),这些事件帮助开发者处理连接状态、数据接收和发送过程。 5. **异常处理*...

    flex socket开发总结

    socket.addEventListener(ProgressEvent.SOCKET_DATA, onData); socket.addEventListener(IOErrorEvent.IO_ERROR, onError); socket.addEventListener(Event.CLOSE, onClose); ``` 5. 跨域安全 由于Flash Player的...

    FLEX SOCKET

    socket.addEventListener(ProgressEvent.SOCKET_DATA, onData); socket.addEventListener(IOErrorEvent.IO_ERROR, onError); ``` 3. **构建HTTP请求**:在连接建立后,我们可以编写HTTP请求头并将其发送到服务器...

    Flex_AS3与Java的Socket通信

    在`SocketExample`类的构造函数中,我们初始化一个`Socket`对象并添加两个事件监听器:一个用于处理连接建立(`Event.CONNECT`),另一个用于接收来自服务器的数据(`ProgressEvent.SOCKET_DATA`)。 当用户点击...

    FLEX与JAVA通过SOCKET通信

    socket.addEventListener(ProgressEvent.SOCKET_DATA, onData); socket.connect("localhost", 8080); function onConnect(event:Event):void { trace("已连接"); socket.writeUTFBytes("你好,服务器!"); } ...

    as3 Air ServerSocket

    socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler); } ``` 3. **处理接收到的数据:** 在 `socketDataHandler` 函数中,可以读取从客户端发送过来的数据,并对其进行解析。对于 ...

    flex Socket 通信

    socket.addEventListener(ProgressEvent.SOCKET_DATA, onData); socket.connect("localhost", 8888); private function onConnect(event:Event):void { socket.writeUTFBytes("Hello from Flex!"); } ...

    java与flash通信.docx

    socket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData); function onConnect(event:Event):void { socket.writeUTFBytes("hello\0"); } function onClose(event:Event):void { trace("Connection ...

    Flex与Java Socket通信

    socket.addEventListener(ProgressEvent.SOCKET_DATA, dataHandler); private function dataHandler(event:ProgressEvent):void { var receivedData:String = socket.readUTF(); // 处理接收到的数据 } socket....

    Flex Soket与Java通讯

    socket.addEventListener(ProgressEvent.SOCKET_DATA, onData); socket.addEventListener(IOErrorEvent.IO_ERROR, onError); socket.connect("localhost", 8888); private function onConnect(event:Event):...

    Flex与javasocket通讯.pdf

    4. `ProgressEvent.SOCKET_DATA` - 收到服务器发送的新数据时触发。 **单向通信流程** 在服务器端,我们通常需要处理客户端的连接请求,接收数据,然后断开连接。以下是一个简化的流程: 1. 使用`ServerSocket....

    AS3.0开发MMORPG游戏概要.pdf

    此外,通过监听ProgressEvent.SOCKET_DATA事件,游戏能够处理实时的socket数据,这表明在游戏开发中网络通信是实时且动态的。 7. 模块化设计:文档中提到了Login、Players和GameWindows等模块,以及ModuleManager,...

    关于FLASH与后台通信问题

    client.addEventListener(ProgressEvent.SOCKET_DATA, receiveData); } ``` 这里我们为连接成功和接收到数据这两个事件分别注册了事件处理函数 `sendData` 和 `receiveData`。 ### 3. 数据发送与接收 #### 3.1 ...

Global site tag (gtag.js) - Google Analytics