recv failed_ea端apex启动失败

recv failed_ea端apex启动失败网上很多人说收到EAGAIN错误时,直接再次接收就行了,但是我认为这样可能会有问题,最好是做个记数器,如果多次收到EAGAIN,就关闭socket,重新连接,这样应该万万无一失!intrcv_len=recv(p_c

recv failed_ea端apex启动失败

网上很多人说收到EAGAIN错误时,直接再次接收就行了, 但是我认为这样可能会有问题,最好是做个记数器,如果多次收到EAGAIN ,就关闭socket,重新连接,这样应该万万无一失!

210203 06:03:31> CH6 recv() error:11
210203 06:03:31> CH7 recv() error:11
210203 06:03:31> CH6 AV3连接断开
210203 06:03:31> CH7 AV3连接断开
210203 06:03:31> CH2 recv() error:11
210203 06:03:31> CH4 recv() error:11
210203 06:03:31> CH1 recv() error:11
210203 06:03:31> CH2 AV3连接断开
210203 06:03:31> CH4 AV3连接断开
210203 06:03:31> CH1 AV3连接断开
210203 06:03:31> CH3 recv() error:11
210203 06:03:31> CH3 AV3连接断开
210203 06:03:32> CH5 recv() error:11
210203 06:03:32> CH5 AV3连接断开
210203 06:03:46> request video 6 stream
210203 06:03:46> request video 7 stream

查询error 11就是EAGAIN错误,网上说了一大堆,什么非阻塞调用阻塞BBBBBBBBB等,这些都不重要, again是再来一次的意思,就再试一次就行了,1次不行就试多次,还不行,就推倒重来。

               WHILE(1)

{              int rcv_len = recv(p_ch->sock_tcp, recv_buf, sizeof(recv_buf), 0);
                if(rcv_len == -1)
                {

                    LOG_F(“CH%d recv() error:%d\n”, p_ch->channel, errno);
                    if(EINTR == errno)                //EINTR: recv函数是由于程序接收到信号后返回的, 不应close掉socket连接
                        continue;                            
                    else if(EAGAIN == errno)        //EAGAIN:  增加处理EAGIN情况###### Wed Feb 3 09:11:04 CST 2021
                    {

                        p_ch->EAGAIN_cnt++;
                        if(p_ch->EAGAIN_cnt > 5)

                        {

                            p_ch->EAGAIN_cnt = 0;
                            p_ch->sta_tcp = TCP_CLOSE;
                            break;
                        }
                    }
                    else{

                        p_ch->sta_tcp = TCP_CLOSE;
                        break;
                    }
                }

}

今天的文章recv failed_ea端apex启动失败分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/69931.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注