加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash socket与c++服务器端数据不一致的问题

发布时间:2020-12-15 17:52:14 所属栏目:百科 来源:网络整理
导读:一、flash socket与c++服务器端数据不一致的问题 在一次开发项目过程中,(Flash的socket与c++的进行二进制数据通讯),之前一直是通讯正常,在flash与c++之间正常收发结构?? 但是在一次更新了服务器后,却发现flash接受了一下C++服务器发送过来的数据没有反
  1. 一、flash socket与c++服务器端数据不一致的问题


  2. 在一次开发项目过程中,(Flash的socket与c++的进行二进制数据通讯),之前一直是通讯正常,在flash与c++之间正常收发结构??
  3. 但是在一次更新了服务器后,却发现flash接受了一下C++服务器发送过来的数据没有反应??
  4. 一开始以为是C++更新出现了问题,但是把C++的测试客户端拿过来却能正常运行??
  5. 那么问题是flash客户端,可是换上旧的服务器,却能正常运行。??
  6. ??
  7. 提示连接成功到服务器,服务器也确实发出了数据....那么问题是在收数据这里??
  8. 虽然怀疑服务器也有问题,但还是先从客户端调器??
  9. 打开CS3的调试,仔细看网络层的数据,发现用户连接成功后接受房间列表的时候,收到的字节数与服务器发送过来的字节大小一样。那么就有可能flash网络层解析数据的问题.??
  10. 可是问题旧的服务器又完全正常呢???
  11. 检查了一下,还是找不到问题的所在。只好对网络层做深的解析,在调试器里,从消息头开始分析起,然后读了多少字节,就减去多少字节,进行手工计算??
  12. 终于在消息头那里发现了问题,在消息头里服务器告诉了我后面的的消息长度是256,但是实际传给我的实际长度却只有250,问题就出现在这里......??
  13. 服务器的问题......结果仔细一检查,服务器代码也没问题。那么问题就是在结合同事写的C++连接数据的问题了??
  14. 最后终于查出是因为VC编译器的问题。它会有自动补齐字节数的问题。也就是说,如果它遇到一个字节,会自动换成int,也就是四个字节来计算,但是实际发出去却没有变换。这样就造成发送的数据与申明的字节数不符合??
  15. 最后的解决办法是,直接在收到总的消息里,直接减去消息头的数据,就完全解决了........??
  16. var?bytes:ByteArray?=?new?ByteArray();??
  17. socket.readBytes(bytes,?0,?msgAllLen?-?16);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读