一段时间后,接收套接字突然停止

时间:2016-12-24 20:51:57

标签: java sockets tcp

我正致力于SMPP协议的项目工作。它无限地监听服务器并接受套接字。接收套接字后,它创建一个处理程序,接收数据并根据SMPP协议对其进行处理。经过一段时间(1或2周)后,它停止接收插座。它不会抛出任何异常,只是在线等待*。我不知道是什么问题,我该如何解决它。请注意,套接字计数不超过30.所以我们没有关于活动套接字计数限制的问题。 并注意创建之前的其他套接字是活动的并且正在工作.App从这些套接字和进程接收数据:接收sms-es并从这些套接字发送sms-es。重新启动应用程序后它正在运行。我认为这不是解决方案。

private void process() {
    try {
        //line *.waiting for receiving new socket. Problem is on this point
        Socket socket = serverSocket.accept();
        //creating a handler that recieve data and process it according to SMPP protocol
        StandardConnectionHandler sch = new StandardConnectionHandler(socket);
        new Thread(sch).start();
        smsc.getConnectionHandlers().add(sch);
    } catch (Exception ex) {
        logger.log(Level.SEVERE, "exception in accepting a connection", ex);
    } finally {
        process();//if it is done.recieved a new socket call back again
        //it is infinite recursive procedure
    }
}

1 个答案:

答案 0 :(得分:-1)

您没有发布完整代码和服务器套接字初始化。尽管如此,我认为您的问题可能与您没有正确关闭所有流有关。