jx101 2025-02-09 04:35 采纳率: 0%
浏览 16
已结题

哥!匿名助手图像显示 误码怎么办?

img


请问这个FLAG:标志位有什么用呢?另外我写的这个函数为什么会出现误码?


void NIMING_Send_IMAGE(int __fd,__CONST_SOCKADDR_ARG __addr,socklen_t __addr_len)
{
    //匿名格式
    uint8_t BUFF[200];
    uint8_t _cnt = 0;
    BUFF[_cnt++]=0xAB;//帧头
    BUFF[_cnt++]=0x01;//源地址
    BUFF[_cnt++]=0xFF;//目标地址
    BUFF[_cnt++]=0xB0;//功能码(ID)
    BUFF[_cnt++]=17+100;//数据长度(2字节)
    BUFF[_cnt++]=0;//数据长度

    //FLAG
    BUFF[_cnt++]=1;
    BUFF[_cnt++]=0;

    //COLOR
    BUFF[_cnt++]=0;

    //WDITH
    BUFF[_cnt++]=10;
    BUFF[_cnt++]=0;

    //HEIGHT
    BUFF[_cnt++]=10;
    BUFF[_cnt++]=0;

    // VAL10
    BUFF[_cnt++]=0;
    BUFF[_cnt++]=0;
    BUFF[_cnt++]=0;
    BUFF[_cnt++]=0;
    BUFF[_cnt++]=0;
    BUFF[_cnt++]=0;
    BUFF[_cnt++]=0;
    BUFF[_cnt++]=0;
    BUFF[_cnt++]=0;
    BUFF[_cnt++]=0;

    for(int i=0;i<100;i++)
        BUFF[_cnt++]=128;

    uint8_t sumcheck = 0;
    uint8_t addcheck = 0;
    uint16_t flen = BUFF[4] + BUFF[5] * 256;
    for(uint16_t i=0; i < (flen+6); i++)//校验计算
    {
        sumcheck += BUFF[i];
        addcheck += sumcheck;
    }

    BUFF[_cnt++] = sumcheck;//和校验
    BUFF[_cnt++] = addcheck;//附加校验

sendto(__fd, BUFF, _cnt, 0, __addr, __addr_len);
}

img

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2025-02-09 04:35
    关注

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    哥!匿名助手图像显示 误码怎么办?

    UDP

    请问这个FLAG:标志位有什么用呢?另外我写的这个函数为什么会出现误码?

    在使用UDP通信时,如果图像显示出现了错误码(例如“0X00”或“0XFF”等),这通常意味着存在数据传输过程中的差错或异常情况。这种情况可能是由于以下原因:

    1. 网络问题:如果你的服务器或网络设备出现故障,可能会导致图像无法正确地发送和接收。
    2. 协议不兼容:某些协议可能对图像进行编码或解码时存在问题,从而导致图像显示错误。
    3. 缓冲区溢出:如果发送的数据超过了服务器能够处理的最大大小,图像将被错误地重传,导致错误码的出现。
    4. 连接问题:如果你的应用需要与远程服务器建立连接,而连接失败会导致图像显示错误。

    为了解决这个问题,你可以尝试以下方法:

    • 检查网络状况:确保你的服务器和客户端都处于正常运行状态。
    • 检查协议版本:确保你使用的协议是最新且支持图像格式。
    • 确认图像质量:如果图像的质量有问题,可以考虑调整图像的分辨率、色彩深度等参数以提高图像质量。
    • 检查发送端和接收端的设置:确保所有必要的参数设置正确无误,包括帧率、码流大小等。
    • 测试应用程序性能:如果图像显示问题持续存在,可以考虑重新启动应用或者更换其他硬件设备来排除故障。

    在代码中,你可以通过检查发送端和接收端的参数设置来验证图像是否正确发送和接收。例如,在NIMING_SEND_IMAGE函数中,你可以检查发送端的“DATA_SIZE”和“OFFSET”参数,并确保它们符合预期的值。

    以上仅为一般性建议,具体实现时还需根据实际情况调整。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月1日
  • 创建了问题 2月9日