JavaEE面向对象网络

标签 java sockets network-programming serversocket

我想澄清有关网络 OOP 的问题。例如,使用客户端-服务器模型,就像信使一样,您有两个程序。当客户端程序运行时,它的一个对象被实例化。一个Socket然后在客户端程序内实例化并连接到服务器程序 ServerSocket使用ServerSocketaccept()方法。根据创建新的 Socket 的文档服务器程序内部。根据我的经验,Java 中使用“创建”一词时,它指的是一个对象,因此现在一个客户端有两个对象 Socket ?一个在客户端程序上,一个在服务器上?是否可以从服务器程序实例化客户端程序中的对象,或者反之亦然?

最后,如果我使用static修改器创建我的 Socket在客户端程序中,通常只允许创建它的一个对象,因此如果 Socket关于Socket在客户端程序中通常是不一样的Socket如在服务器程序中,引用创建的对象,现在两个程序之间是否仅共享一个对象?

为了清楚起见,我不是在谈论多个客户端连接,我只是想了解客户端 Socket 的基 native 制。连接到服务器的ServerSocket以及弄清楚通过这种联系我能做什么和不能做什么,但一旦我理解了它,我就可以在自己的时间进行实验。

我希望我没有想太多。预先感谢您的帮助:-)。

最佳答案

首先,你的问题与Java EE没有任何关系。套接字是 Java SE 的一部分。

你也不明白static是什么意思。 static 将变量的作用域限定为类,而不是将其限定为类的实例。它不限制创建的对象的数量。每个 JVM 都有自己的对象和类,它们不与网络上的任何其他 JVM 共享。将对象存储到客户端 JVM 中 A 类的静态变量 foo 中不会对服务器上 A.foo 中存储的内容产生任何影响。

我不明白你为什么如此关心创建的套接字对象的数量。套接字就是:两方之间通信的端点。每一方都有自己的端点,连接到另一方的端点。有点像你给 friend 打电话:你用一部手机,你的 friend 也用一部,两部手机互相连接。

关于JavaEE面向对象网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14009189/

相关文章:

java - android中有什么方法可以使用FFMPEG库过滤掉噪声(低通滤波器)。有人能帮我吗

java - Eclipse 插件 : Pass values from one View to other View

c# - Windows 8 应用程序如何连接到 Socket 服务器

java - 在生产中使用公共(public)池的技巧

c++ - 从 C/C++ 程序 ping

java - 将 ArrayList 项添加到新的 ArrayList 中并比较值

java - 用于多个应用程序的多个 log4j xml 文件

php - 如何使用javascript捕获缓存清除事件?

Windows 与 Linux 中的套接字

c - 多线程服务器设计