记录....
在一次开发项目过程中,(Flash的socket与c++的进行二进制数据通讯),之前一直是通讯正常,在flash与c++之间正常收发结构
但是在一次更新了服务器后,却发现flash接受了一下C++服务器发送过来的数据没有反应
一开始以为是C++更新出现了问题,但是把C++的测试客户端拿过来却能正常运行
那么问题是flash客户端,可是换上旧的服务器,却能正常运行。
提示连接成功到服务器,服务器也确实发出了数据....那么问题是在收数据这里
虽然怀疑服务器也有问题,但还是先从客户端调器
打开CS3的调试,仔细看网络层的数据,发现用户连接成功后接受房间列表的时候,收到的字节数与服务器发送过来的字节大小一样。那么就有可能flash网络层解析数据的问题.
可是问题旧的服务器又完全正常呢?
检查了一下,还是找不到问题的所在。只好对网络层做深的解析,在调试器里,从消息头开始分析起,然后读了多少字节,就减去多少字节,进行手工计算
终于在消息头那里发现了问题,在消息头里服务器告诉了我后面的的消息长度是256,但是实际传给我的实际长度却只有250,问题就出现在这里......
服务器的问题......结果仔细一检查,服务器代码也没问题。那么问题就是在结合同事写的C++连接数据的问题了
最后终于查出是因为VC编译器的问题。它会有自动补齐字节数的问题。也就是说,如果它遇到一个字节,会自动换成int,也就是四个字节来计算,但是实际发出去却没有变换。这样就造成发送的数据与申明的字节数不符合
最后的解决办法是,直接在收到总的消息里,直接减去消息头的数据,就完全解决了........
var bytes:ByteArray = new ByteArray();
socket.readBytes(bytes, 0, msgAllLen - 16);
分享到:
相关推荐
总结,"支持Flash安全策略转发的服务器端"意味着我们需要编写一个能够正确处理Flash安全策略请求的服务器程序,使用C++和Visual Studio .NET 2005的Socket API来实现。这个过程包括识别请求、读取并返回crossdomain....
5. **Socket通信**:C++可以通过建立TCP或UDP套接字与Flash进行网络通信。这种方式适合跨网络的通信,但实现起来相对复杂。 6. **本地连接(LocalConnection)**:这是Flash Player提供的一种机制,允许同一台...
通过对这个文件进行分析,可以深入了解AS3.0客户端如何与C++服务器进行Socket通信的具体实现细节。 总之,AS3.0的Socket通信能力使得Flash和C++等不同平台之间能够进行实时、高效的数据交换,这对于构建跨平台的...
这种模式简化了客户端,用户只需安装标准的Web浏览器即可,而复杂的业务逻辑和数据处理则在服务器端进行。在游戏开发中,B/S模式可以提供跨平台的用户体验,玩家只需要打开网页就能玩游戏。 【FLASH】 Flash是一款...
3. **RTMP (Real-Time Messaging Protocol)**: RTMP是一种专为音频、视频数据实时传输而设计的协议,常用于将视频流推送至流媒体服务器,如Adobe Flash Media Server或开源的Nginx-RTMP模块。JavaCV可以实现将接收到...
当Flex Socket连接上来时,服务器端通过`accept()`方法获取新的`Socket`对象,然后就可以进行数据交换了。Java的示例代码如下: ```java ServerSocket serverSocket = new ServerSocket(8080); Socket clientSocket ...
Socket编程与AMF3在IT领域是两个重要的概念,它们分别代表了网络通信的基础和一种高效的数据序列化机制。在本文中,我们将深入探讨这两个技术,并结合提供的资源,即一篇名为“socket+AMF3”的博客文章,来理解它们...
VC可以通过创建一个服务器端的本地连接,而Flash作为客户端连接到这个服务器,从而实现数据交换。 3. **外部接口(External Interface)**:这是Flash与JavaScript或其他宿主环境(如VC)交互的一种方式。通过在...
例如,可以使用Berkeley套接字API或更高级的库如libevent、libev或Boost.Asio来实现服务器端的异步I/O。 2. **TCP和UDP协议**:TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它确保...
9. **XML和SWF文件**:在提供的文件列表中,`library.swf`可能是用于展示或交互的Flash组件,而`catalog.xml`可能是配置文件,用于描述SWF组件的元数据或者与Socket通信相关的配置信息。 理解并掌握Socket管理不仅...
2. **Winsock编程**:Visual C++中的Winsock API是实现服务器端网络通信的核心。通过调用`WSAStartup`初始化Winsock,然后创建套接字并绑定到指定的IP地址和端口,监听来自Flash Player的连接请求。 3. **接收...
内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库。 sdk(界面库) RINGSDK包含界面库和图象库。 绘MFC基本控件 ) 如题。 ...
在VC++中,使用Winsock API的`socket()`函数创建套接字,然后通过`bind()`、`listen()`和`accept()`函数建立服务器端,`connect()`函数用于客户端连接。 2. **服务器端编程**:服务器端首先创建一个监听套接字,...
它提供了完整的服务器端解决方案,包括录制、直播、互动等。然而,FMS的部署和定制相对复杂。 2. **Red5**:这是一个开源的RTMP服务器,基于Java开发,支持直播、录播、存储等功能。Red5相对于FMS来说,定制性更强...
- **数据库连接池**:MySQLdb支持使用DBUtils或jonpy等开源库来实现数据库连接池,这对于服务器端开发尤其重要。 - **兼容性**:支持MySQL 3.23至5.1版本,兼容Python 2.3至2.5版本。 - **安全性**:通过参数化查询...
Flash/Flex也支持基于Socket的网络连接 ,服务器端可以是C++,VB,C#,Java等任一语言开发。监听一个网络端口便可以接收到Flash/Flex开发的客户端的连接。
B/S指浏览器/服务器架构,JSP和ASP是服务器端脚本技术,用于生成动态网页内容。 Java:是一种面向对象的编程语言,具有跨平台的特性。在Web开发中,Java通常用于后端服务和企业级应用。 Flash:是一种矢量图形和...
内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库。 sdk(界面库) RINGSDK包含界面库和图象库。 绘MFC基本控件 PlayerDrectShow...