日期:2014-05-20  浏览次数:20917 次

怎么重启main方法
当socket网络中断或出现其他问题的异常时候,需要重启整个main方法 现在是为什么异常会越来越多?
前辈们给点指导要怎么处理这样的异常!!
------最佳解决方案--------------------
引用:
当socket网络中断或出现其他问题的异常时候,需要重启整个main方法 现在是为什么异常会越来越多?
前辈们给点指导要怎么处理这样的异常!!


你要做的问题,不是重启main方法;而是有效捕获异常并处理,然后重新执行网络连接之类的工作,类似于:


public static void main(String[] args) {
  while (true) {
    try {
      doSocket();
    }catch(Exception ex) {
      ex.printStackTrace(); // 有异常了
    }
  }
}

public static void doSocket() {
  连接网络或其它动作
}

------其他解决方案--------------------
start() 里面是啥样的?
------其他解决方案--------------------
引用:
上面的是出现异常后调用的方法啊!start()是开启整个socket的入口,这样写会不会有问题啊

start是怎么处理?reconnetct是怎么调用?
------其他解决方案--------------------
看起来楼主的重连会出现 stack overflow,因为如果人家就是把 GPRS 和 Wi-Fi 关了,你这样一直试就会 stack overflow,因为是在几个方法之间循环调用。

推荐不要在 connect 里再 connect。

应该在循环里面 connect 失败了就 loop next。
------其他解决方案--------------------
开始时这样的异常
2012-07-24 01:55:18,586[main] INFO  Proxy:108 - Connection reset
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:185)
at com.hc.socket.Proxy.decompress(Proxy.java:91)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.main(C3poData.java:599)

关闭所有socket连接后在次报异常
2012-07-26 18:12:33,667[main] INFO  Proxy:108 - Connection reset
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:185)
at com.hc.socket.Proxy.decompress(Proxy.java:91)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.stop(C3poData.java:596)
at com.hc.socket.Proxy.ReConnect(Proxy.java:119)
at com.hc.socket.Proxy.decompress(Proxy.java:109)
at com.hc.data.SocketData.upDate(SocketData.java:44)
at com.hc.jdbc.C3poData.start(C3poData.java:581)
at com.hc.jdbc.C3poData.main(C3poData.java:599)