0
  • 最佳答案

    解决了!把这里的对负数判定取消,就可以了

        /**
         *
         * @param buf 读取大小
         * @param writeLen   已经写入到文件中的
         * @param leftLen    内存中剩余的字节长度
         */
        public static void move( byte buf[] ,int writeLen, int leftLen){
            for (int i = 0; i < leftLen; i++) {
                if(buf[writeLen+i] != 0){
                    buf[i] = buf[writeLen+i];
                }
            }
        }
    
    1542927957012516865  评论     打赏       948655206
  • 已经解决

    1542927957012516865  评论     打赏       948655206
    • 这种问题自己打log看log,发送数据的长度,接收到数据长度,长度对上了,就比较md5值。实际开发中我们不会直接使用socker传字节数据,而是socket+协议,自己写一套协议。否则你不知道数据段各内容,如果你是间隔发的还好,接收端收完数据就结束了,如果你连续发呢,怎么知道哪里是头,哪里是尾,是什么类型的数据,对吧。通常来说,我们会定义协议,第几个到第几位是数据头,描述后面的内容,什么类型,数据长度,校验值之类的。根据数据头去读取后面的数据,解析出来的数据就是完整的了。

      1153952789488054272  评论     打赏       拉大锯
      • 948655206  回复 @拉大锯
        大佬 但是我这个 是根据图片的大小来输入数据长度 如果这一次的数据里包含了下次的数据 会保留到下次继续输入 为什么还是 只能查看第一张图片呢?
        948655206 2022-07-18 12:38   回复 1542927957012516865
      • 拉大锯  回复 @948655206
        为什么问你自己,你自己写的代码[捂脸],这各事情只能给你指个方向,你的老师都不一定能给你一对一去解答问题。如果这一次的数据里包含了下次的数据 会保留到下次继续输入。这个我就没看懂了。另外,如果你有输入的功能,先隔离掉,你就简单地传现成的,硬编码的文件,分段定位问题,看看是你传输的问题,还是你输入的问题。
        拉大锯 2022-07-18 14:17   回复 1153952789488054272
      • 948655206  回复 @拉大锯
        谢谢大佬 其实你就是我的老师 我的安卓就是跟着你 一步一步来学习的
        948655206 2022-07-19 11:01   回复 1542927957012516865
    相关问题
    幻影~ · 安卓
    2024-04-26 19:25 2 4
    deanhu · AOSP
    2024-04-25 21:53 3 10
    幻影~ · 提问
    2024-04-13 20:13 10 2
    幻影~ · 找工作
    2024-04-07 10:44 16 2
    幻影~ · 问题
    2024-03-31 17:20 7 2
    TONYGFX · AOSP
    2024-03-28 17:11 4 2