为什么我们需要一个半封闭套接字?

Why do we need a half-close socket?

根据这个blog,似乎半开连接是我们想要避免的。

那么为什么 Java 仍然提供使套接字 半关闭 的工具?

According to this blog, it seems half open connection is what we want to avoid.

该博客的作者明确指出,他不是在谈论故意半关闭连接,而是在谈论由中间设备(例如路由器)在一段时间后断开连接状态引起的半打开连接。

So why does Java still provides the facility to make a socket half close?

因为有什么用?半关闭只是意味着不再有数据发送到套接字上,但它仍然能够接收数据。这种行为实际上对客户端只发送请求并收到响应的各种情况很有用,因为它可以用来向对端指示请求结束。