【问题标题】:What are the Issues when Java Server Socket run continuouslyJava Server Socket 连续运行有哪些问题
【发布时间】:2012-03-05 19:09:13
【问题描述】:

作为我们项目的一部分,我们实现了基于 Java Server Socket 的应用程序,该应用程序将在上午 06:35 到晚上 11:59 之间运行。晚上 11:59 之后,我们将停止此过程并在上午 06:35 重新开始。 现在我们需要连续运行这个过程,除了周末。 问题是如果我们连续运行这个过程,我们会遇到问题吗 java.net.ConnectException:连接被拒绝?如果我们连续运行这个作业,是不是 Socket 会超时?我的要求是在生产中这个过程不应该因为连续运行而抛出任何错误。 请指教?

代码:

SocketConnection socketConnection = new SocketConnection();
ServerSocket serverSocket = socketConnection.getSocketConnection();
while (true)
{
   Socket socket = serverSocket.accept();
   ServerThreadHandler serverThreadHandler = null;
   try
   {
       PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
       BufferedReader in =new BufferedReader(new InputStreamReader(socket.getInputStream()));
       String requestXml = in.readLine();
       //TODo the process
       out.println(responseXml);
   } catch (Exception e)
   {
   }
}

问候, 基兰T

【问题讨论】:

  • 你考虑过测试它吗?

标签: java networking serversocket


【解决方案1】:

理论上,ServerSocket 连续接受是没有问题的。但是,您不需要从serverSocket.accept() 得到的close socket 吗?

您应该查看文档。如果您需要关闭并且没有关闭它,您可能会耗尽资源并最终出现错误。

如果您已经遇到异常,请将堆栈跟踪添加到您的问题中。

【讨论】:

  • 他当然需要关闭它。它是一个系统资源,它是可关闭的,它有一个 close() 方法。
猜你喜欢
  • 2020-11-03
  • 1970-01-01
  • 2014-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多