0

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

此外,当您关闭 a 时ServerSocket,它是否还会关闭Socket它通过该accept方法产生的所有关联连接?

4

3 回答 3

3

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

于 2012-10-02T05:23:07.737 回答
1

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

GC 将最终确定 ServerSocket 最终将其关闭,但您不能说何时会发生(或者可能永远不会发生)

JVM 或 TCP/IP 堆栈会自动为您关闭它吗?

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

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

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

于 2012-10-02T05:45:47.413 回答
0

JVM 或 TCP/IP 堆栈会自动为您关闭它吗?

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

当你关闭一个 ServerSocket 时,它是否也会关闭它通过 accept 方法产生的所有关联的 Socket 连接?

当然不。

于 2012-10-02T10:11:14.797 回答