Takin

Takin

1个粉丝

41

问答

0

专栏

0

资料

Takin  发布于  2015-03-19 17:26:19
采纳率 0%
41个问答
4643

应用程序 如何处理网络异常 IPC心跳机制

 

通过HI3535芯片,想解码IPC的视频数据

测试发现前提是:要定时给IPC发送心(IPC会通过TCP返数据给解码板),IPC才会一直送视频数据过来;


//给 IPC 发送心跳的线程如下:
HI_VOID  TCPConnectCheckThread(HI_VOID *pArgs)
{
while(1)
{
  usleep(100000);//发送心跳的时间间隔
    memset(recvBuf,0,sizeof(recvBuf));
   
    //tcp 此处原为阻塞式模式
      ul = 1;
            ioctl(sockfd, FIONBIO, &ul);//设为非阻塞式           
  sendVal = send(sockfd, HeartBuff, sizeof(HeartBuff), 0);        //发送心跳
  ul = 0;
            ioctl(sockfd, FIONBIO, &ul); //设置为阻塞模式

    if (SOCKET_ERROR == sendVal)        //异常判断
{
  printf("SOCKET_ERROR \n");//此时我认为网线断开,或IPC掉电。。。???这个地方
  if(iTcpConnectFlag != -1)//程序运行前创建了TCPsocket iTcpConnectFlag = 1;那么要先关闭当前TCPscoket之后才能再创建;反之则不需要
  {
          close(sockfd);
    printf(" close(sockfd);\n");
  }
  while(1)
  {      
                iTcpConnectFlag = TcpSockInit(pstSendParam);               
                if(-1 == iTcpConnectFlag)
                {            
             printf(" not connect..\n");
                }else{
   printf("TCP重连成功。。。\n");
             break;
               }  
}
}
  }
}

出现的问题:
1,
当IPC网络连接是正常时,程序运行会进入if (SOCKET_ERROR == sendVal)条件:
不知道这种情况是如何产生?
2,
正确的心跳应该如何发送?
3,
我想实现,对网络异常的正确处理,IPC突然被拔掉网线或掉电等,再重新插上或上电,图像也能正常再显示;
我来回答
回答6个
时间排序
认可量排序

david

41个粉丝

368

问答

253

专栏

229

资料

david 2015-03-19 19:16:14
认可0
TCP 有异常检测机制,连接上来和掉线都能检测到,为什么还要心跳。
心跳一般用在udp方式。

Takin

1个粉丝

41

问答

0

专栏

0

资料

Takin 2015-03-19 20:20:31
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=14393&ptid=6969]david 发表于 2015-3-19 19:16[/url]
TCP 有异常检测机制,连接上来和掉线都能检测到,为什么还要心跳。
心跳一般用在udp方式。[/quote]

在解码IPC的视频数据时
不发心跳给IPC
过段时间IPC就不发数据到海思板这边

不知道您是如何处理,如果解码前端的IPC

3wnae

0个粉丝

9

问答

0

专栏

0

资料

3wnae 2015-03-27 11:25:07
认可0
有的摄像头会出现这种情况。用live555接收数据60s后就停止发送数据了。  你要定时发送一个RTSP的请求过去,不然就会停止发送数据。

Takin

1个粉丝

41

问答

0

专栏

0

资料

Takin 2015-03-27 19:44:24
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=14644&ptid=6969]3wnae 发表于 2015-3-27 11:25[/url]
有的摄像头会出现这种情况。用live555接收数据60s后就停止发送数据了。  你要定时发送一个RTSP的请求过去, ...[/quote]

你说的有的摄像头这样。
海康大华的会不会?

ecomsbz

1个粉丝

22

问答

0

专栏

36

资料

ecomsbz 2015-03-28 12:55:31
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=14644&ptid=6969]3wnae 发表于 2015-3-27 11:25[/url]
有的摄像头会出现这种情况。用live555接收数据60s后就停止发送数据了。  你要定时发送一个RTSP的请求过去, ...[/quote]

重新发送live555的 描述? 发送哪个呢? play?

Takin

1个粉丝

41

问答

0

专栏

0

资料

Takin 2015-03-30 13:55:54
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=14671&ptid=6969]ecomsbz 发表于 2015-3-28 12:55[/url]
重新发送live555的 描述? 发送哪个呢? play?[/quote]

GET_PARAMETER
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区