考虑在两个 TCP 端点之间建立的 TCP 连接,其中一个端点调用:
close()
: 在这里,不允许进一步读取或写入。shutdown(fd, SHUT_WR)
:这会将全双工连接转换为单工连接,端点调用SHUT_WR
仍然可以读取。
但是,在这两种情况下,FIN 数据包都会通过线路发送到对等端点。那么问题来了,接收到 FIN 的 TCP 端点如何区分另一个端点是否使用了close()
or SHUT_WR
,因为在后一种情况下它应该仍然能够发送数据?
考虑在两个 TCP 端点之间建立的 TCP 连接,其中一个端点调用:
close()
: 在这里,不允许进一步读取或写入。
shutdown(fd, SHUT_WR)
:这会将全双工连接转换为单工连接,端点调用SHUT_WR
仍然可以读取。
但是,在这两种情况下,FIN 数据包都会通过线路发送到对等端点。那么问题来了,接收到 FIN 的 TCP 端点如何区分另一个端点是否使用了close()
or SHUT_WR
,因为在后一种情况下它应该仍然能够发送数据?