3

当我在 Java 中声明时

Socket s = new Socket((String)null, 12345);

这实际上是打开一个套接字并使用系统和网络资源,还是推迟到我附加输入/输出缓冲区?我想Socket在我的程序开始时创建一个对象,该对象全部设置为连接到服务器,并根据需要打开/关闭它,而不必传递地址和端口(看起来更干净),但是如果这意味着端口将一直打开,则不会。

编辑
从答案看来,这不会像我想要的那样工作。如何创建一个全部设置了地址并且只需要连接的封闭套接字?

4

4 回答 4

3

http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html#Socket(java.net.InetAddress,%20int) <- 这取决于您使用的构造函数。对于您指定的构造函数,它会连接。

于 2012-06-17T21:36:10.860 回答
2

根据http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html#Socket(java.lang.String,int) ,您初始化对象的方式将被连接.

于 2012-06-17T21:42:22.850 回答
0

Socket 的每个构造函数都会创建一个底层套接字,它使用系统资源,并且除了无参数构造函数之外的所有构造函数都连接它,它使用网络资源。没有像 'attach[ing] an input/output buffer' 到 Socket 这样的操作。

于 2012-06-17T21:59:57.423 回答
0

供您编辑:您必须设置自己的类来保存所有设置信息,然后可以稍后打开。也许你只是将​​数据存储在那里并创建一个返回套接字的方法。这取决于你,有很多方法可以做到这一点。但请确保所有套接字最后都正确关闭;)

于 2012-06-17T21:50:08.553 回答