忘记用Java关闭服务器套接字

时间:2012-10-02 05:21:18

标签: java sockets serversocket

当您忘记在Java中关闭ServerSocket时会发生什么? JVM或TCP / IP堆栈是否会自动关闭它?

此外,当您关闭ServerSocket时,它是否还会关闭通过Socket方法生成的所有相关accept个关联?

3 个答案:

答案 0 :(得分:3)

当JVM终止时,操作系统将关闭并释放所有资源。

答案 1 :(得分:1)

  

当您忘记在Java中关闭ServerSocket时会发生什么?

GC将最终确定最终关闭它的ServerSocket,但你不能说这会发生什么时候(或者可能永远不会发生)

  

JVM或TCP / IP堆栈是否会自动关闭它?

它的JVM。 TCP / IP堆栈不知道应该关闭它。

  

此外,当您关闭ServerSocket时,它还会关闭它通过accept方法生成的所有相关Socket连接吗?

ServerSocket用于建立连接,一旦被接受,它与客户端创建的连接没有什么不同。关闭服务器套接字对接受的连接没有影响。 (它将关闭那些尚未被接受的人)

答案 2 :(得分:0)

  

JVM或TCP / IP堆栈是否会自动关闭它?

如果JVM被垃圾收集,它可能会关闭它。进程退出时,TCP / IP堆栈将关闭它。您没有说明在什么条件下您希望行动发生,因此不可能更具体。

  

当你关闭ServerSocket时它是否还会关闭它通过accept方法生成的所有相关Socket连接?

绝对没有。