在java中处理客户端服务器应用程序时,我很难理解网络模式和非网络模式术语之间的区别。
我知道如何开发简单的客户端服务器应用程序。例如,我可以创建客户机应用程序和服务器应用程序。这些应用程序可以通过套接字连接,并发送和接收数据。但是,当人们谈到在独立模式下运行服务器和客户机时,我会感到困惑,在这种模式下,客户机和服务器都使用相同的JVM实例,而不涉及回循环网络。我在java derby数据库中看到了这种情况。
因此,我的主要问题是,如何使用使用套接字进行通信的代码,并将其转换为使用所谓的“独立模式”,其中客户机和服务器作为一个应用程序运行?我将感谢任何评论,指出我正确的材料。
发布于 2014-03-31 15:53:13
在所谓的网络模式中,您必须连接到远程服务器,正如您所描述的,通常通过套接字,因此客户端要求服务器执行特定任务,服务器执行任务并响应客户端。
在这种模式下,客户端和服务器通常是不同的节点,即不同的机器,独立运行。
但是,如果您想在同一台机器上运行客户端和服务器,怎么办?即使在同一个虚拟机里?通过套接字让服务器做一些事情有意义吗?
这就像用Skype和坐在你身边的朋友聊天,简单地叫他去吃午饭。
因此,在理想情况下,您应该能够在非网络模式下运行您的应用程序。也就是说,您不需要遍历套接字,而是直接访问您的服务器对象,并要求它为您做一些事情。因为您的服务器对象与客户端位于同一个虚拟机中。
显然,为了能够做到这一点,您需要一个很好的设计,通过一个接口公开您的服务器功能,并且您的应用程序使用这个接口与服务器交互。在网络模式下运行时,可以使用此服务器接口的实现,该实现使用套接字(或RMI或任何用于网络通信的操作)。当您处于非网络模式时,您将得到服务器对象本身的实现。
https://stackoverflow.com/questions/22766135
复制相似问题