Java新套接字的状态

3

当我在Java中声明时

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

这个操作是否实际打开了一个套接字并使用系统和网络资源,还是直到我连接输入/输出缓冲区时才进行?我想在程序开始时创建一个Socket对象,它已经设置好连接服务器,并根据需要打开/关闭它,而不是传递地址和端口(这似乎更清晰),但如果这意味着端口将一直开放,则不要这样做。
编辑 从答案中看来,这不会像我想的那样工作。如何创建一个已设置好地址且仅需要连接的关闭套接字?

这样你就在端口12345上打开了一个到回环接口的套接字。这真的是你想要的吗? - kol
@kol 我从我的测试代码中复制了这个,它是对 localhost 进行测试的。最终版本将有一个实际的地址。 - Baruch
4个回答

3

2

0

关于您的编辑:您将需要设置自己的类来保存所有设置信息,稍后可以打开该类。也许您只需在其中存储数据并创建一个返回套接字的方法。由您决定,有很多方法可以完成这项任务。但请确保在结束时正确关闭所有套接字 ;)


0
每个 Socket 的构造函数都会创建一个底层套接字,它使用系统资源,除了无参构造函数外,所有构造函数都会将其连接到网络资源。没有“附加输入/输出缓冲区”的操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接