关于#java#的问题:ps:总结一下问题:一个在服务器上持续运行的应用程序,用于网络接受从设备数据并发给主设备(操作系统-linux)

我租用了一个云服务器作为主设备和从设备数据传输的媒介,我想通过java的socket和serverlet去写一个无界面的应用程序,不需要能被浏览器访问到(ps:所以不是web项目了 不知道是否还需要tomcat),只做接受从设备发来的数据,经过处理发给主设备。 我的一个困惑时,如何让应用程序不间断的运行,不在处理完一条指令完成后跳出程序。
ps:总结一下问题:一个在服务器上持续运行的应用程序,用于网络接受从设备数据并发给主设备。

基于GPT的解答
您可以使用Java中的Socket编程来实现此目的。下面是一些基本步骤:

1.创建一个ServerSocket对象来监听端口,并接受从设备发送的数据。

2.在无限循环中,使用ServerSocket对象的accept()方法来接受客户端的连接,并获取客户端的Socket对象。

3.通过Socket对象获取输入流,读取从设备发送的数据,并进行处理。

4.处理完毕后,将处理结果发送给主设备。您可以通过Socket对象获取输出流,并将处理结果写入输出流中。

关闭连接并继续等待下一个连接。

为了使应用程序持续运行,您可以将上述步骤放在一个while循环中,并在循环中不断接受从设备的连接和处理数据。同时,您也可以考虑使用多线程来处理并发连接,以提高性能。

至于应用程序如何在服务器上持续运行,您可以将程序打包成可执行的JAR文件,并使用nohup命令在后台运行。例如,可以使用以下命令启动应用程序:

nohup java -jar your_application.jar &

这样,应用程序将在后台运行,并且在关闭终端窗口时不会终止。希望采纳。

参考GPT和自己的思路:

您可以使用Java的多线程技术来实现持续运行的应用程序。在应用程序中创建一个主线程,它负责接受从设备发来的数据,并且启动一个子线程去处理这些数据。处理完毕后,子线程会将处理好的数据交给主线程。主线程再将这些数据经过处理发给主设备。

至于能否省略Web容器的使用,这取决于您的具体需求。如果您只需要使用Java Socket和Servlet技术,而不需要Web服务的支持,那么就不需要使用Tomcat等Web容器。但是如果您需要开发Web服务,则需要使用Web容器。

参考GPT和自己的思路:

你可以考虑使用Java的多线程技术来实现一个持续运行的应用程序。在应用程序中,需要编写一个死循环,循环中不断地接收从设备传来的数据,并进行处理和转发。在循环中,可以使用Java的Socket类实现网络数据的接收和转发。同时,为了确保程序的稳定性和可靠性,可以使用线程池等技术来管理和控制线程的运行。

需要注意的是,如果你要使用Java的Servlet技术来编写应用程序,就必须要使用Servlet容器,比如Tomcat。如果你只需要使用Socket技术来实现接收和转发功能,就不需要使用Servlet容器了。同时,你需要确保你的云服务器能够稳定运行,并且满足你应用程序的运行需要,比如带宽、处理能力等。

你这个就是java最基础的 socket么。想要不间断运行的话,在最外层加个while(true) 就行