我正在通过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设备)。
注意:
我所面临的问题有什么解决方案?任何想法都会很好。