作为我们项目的一部分,我们实现了基于 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
最佳答案
理论上,ServerSocket
连续接受是没有问题的。但是您不需要close
从serverSocket.accept()
获得的socket
吗?
您应该检查文档。如果您需要关闭但没有关闭它,则可能会耗尽资源并最终出现错误。
如果您已经遇到异常,请将堆栈跟踪添加到您的问题中。
关于java - Java Server Socket连续运行会出现什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9572433/