1。是你的程序问题吧,因为是个循环,可能前面没放,后面就又调用了。
2。catch (Exception e) 这是异常类的老爸,逋了他,儿子就跑不了了:)
3。不懂。

解决方案 »

  1.   

    bluesmile979:
      1、finally里我释放了这些东西,没释放的话不可能正常运行,通常是一段时间后才又这种错误。
      2、catch (Exception e) 是对Sleep的处理!finally上面的那个catch才是对socket操作的处理。
      

  2.   

    1、sleep时间长点会好些
    2、UnknownHostException extends IOException
    所以catch(IOException)就好了
      

  3.   

    对不起,没看清,不过道理是一样的UnknowHost是IOException的子类所以…………。第一个问题把你的代码贴出来吧。
      

  4.   

    relive(六道轮回,无想转生) 呵呵,好快啊。
      

  5.   

    relive(六道轮回,无想转生) 
    这种问题可能性比较多,俺经验不够,代码不全我是解决不了了,闪了,交给你了:)
      

  6.   

    bluesmile979(笑着)
    你比我还快啊。
      

  7.   

    bluesmile979(笑着)偶也闪了,偶是新人,学习中,很弱的说,刚才是在骗人的说。呵呵
      

  8.   

    喔~第2个问题解决了,谢了各位。bluesmile979,出问题的代码就在上面啊。它们套在run()的循环里做的。relive ,第一个问题我也怀疑是太快了造成的,因为现在只是和我模拟的一个服务器在跑,每秒100次以上。难道真没办法解决了?还有我在debug模式下发现close socket它的isconnected怎么还是true啊?第3点我的意思是:现在做法是循环开始时创建socket和流,结束时释放。这么太消耗资源,有没有什么好办法解决每次发送一次就要和server重连的这种情况?
      

  9.   

    finally {
            try {
              //关闭Socket,关闭流
              client.close();
              in.close();
              out.close();
            } catch (IOException e) {
              ...
            }
          }
    这里client,in,out逻辑上都应有个判断空的过程,不知道有没有影响。但我确实碰到过connection close后依然占用地址的问题,我一般就重启了笨吧,所以也不知道怎么解决。
      

  10.   

    relive,应该没有影响吧,我曾经写过if client.isconnected {...}也没什么用,所以后面就去掉。你说的重启是什么意思?我出现这个错误后,程序就停了,按理说循环应该继续啊?