几分钟后,Android

时间:2018-07-02 06:24:19

标签: android c++ sockets udp keep-alive

我正在通过C ++代码和NDK使用UDP套接字。 我有一个恒定的ping-pong(keep-alive)机制来保持协议中的连接处于活动状态。

我有一个线程正在不断地寻找来自无限运行的服务器的传入消息。

while(true){
     ..... some code

     int llen = recvfrom(fd, buf, BUFLEN, 0, (const sockaddr *)&si_other, (socklen_t*)&slen);

     ..... some code 
}

如果我将乒乓球时间保持在 30秒(即使设备处于空闲状态),则通信也很好。

但是,如果我将乒乓时间设置为10分钟,并且服务器在第7分钟发送一些数据。即使设备的ip /端口在空闲状态下也不会到达客户端(Android设备)。

注意:

  • 我必须保持10分钟的乒乓球状态。
  • 我正在使用部分唤醒锁。
  • 我无法通过Firebase使用推送通知。
  • 打ze不会受到影响,因为我的应用已列入白名单。
  • 我也在使用AlarmManager发送乒乓球。

我所面临的问题有什么解决方案?任何想法都会很好。

0 个答案:

没有答案