请问android的udp或者tcp是不是隔一段时间不操作,就自动关闭了?我用udp接收广播消息,隔一段时间不连接,就连不上了,怎么回事?
     while (this.isAlive()) {
     try {
     DatagramSocket udp = new DatagramSocket(UdpServerPort);
     try {
             DatagramPacket pkt = new DatagramPacket(buf, 1024);       
udp.receive(pkt);
String sTest = new String(pkt.getData(), 0, pkt.getLength());
if (sTest.compareToIgnoreCase("test") == 0) {
udp.send(pkt);
}
     } finally {
     udp.close();
     }
     } catch (Exception e) {   
     }
    }

解决方案 »

  1.   

    高手啊,socket怎么自动断开啊用tcp传文件都会自动断开连接,怎么回事?
      

  2.   

    在每个阶段打印一下日志,比如 activity 激活了,启用了,睡眠了,比较一下在什么时候你的 socket 接收会停下来,测试时让的程序在活动和不活动/前台后台多次切换;你的后台不停地接收是不是要做成类似服务的。
      

  3.   

    不会的,Android没有这样的限制,8成是代码层面的问题。
      

  4.   


    抱歉,我没有完全了解 Android Wifi的机制,确实是有自动停止网络服务的设定,见 WifiManager的lock方法。
      

  5.   

    关闭输入输出流就会使得Socket关闭!