新Java套接字的状态

时间:2012-06-17 21:29:13

标签: java sockets

当我在Java中声明时

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

这实际上是打开套接字并使用系统和网络资源,还是延迟到我连接输入/输出缓冲区之后?我想在我的程序开始时创建一个Socket对象,该对象都设置为连接到服务器,并根据需要打开/关闭它,而不是必须传递地址和端口(它似乎更干净),但如果它意味着端口将在整个时间打开,那就不行了。

修改
从答案看来,这不会像我想的那样起作用。如何创建一个已关闭的套接字,该套接字全部使用地址设置,只需要连接?

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

答案 2 :(得分:0)

对于您的编辑:您必须设置自己的类,其中包含所有设置信息,然后可以稍后打开。也许yüu会将数据存储在那里并创建一个返回套接字的方法。这取决于你,有很多方法可以做到这一点。但要确保最后所有插座都正确关闭;)

答案 3 :(得分:0)

Socket的每个构造函数都创建一个底层套接字,它使用系统资源,除了no-args构造函数之外的所有构造函数都使用网络资源。没有“将输入/输出缓冲器附加到插座”这样的操作。