0

我正在学习 tcp-ip 堆栈、服务器-客户端连接。我写了一个简单的客户端服务器。客户端和服务器能够毫无问题地相互传输数据。我在同一台机器上运行客户端和服务器。当我使用 ctrl+c 关闭服务器时,我发现内核发送的是 RST 信号而不是 FIN。(请参考我的问题:服务器套接字的主动关闭

稍加调查后,我意识到我的一个客户端处于读取调用中,并且相应的服务器线程处于无限循环,而无所事事(我的一些错误的愚蠢编码)。但是当我删除那个无限循环时,我看到了预期的行为。我可以看到 FIN 被双向发送。

所以,我想知道为什么 tcp 层在第一种情况下发送 RST。

4

1 回答 1

0

最终,您放弃等待另一端接受数据。

于 2013-02-08T01:51:18.853 回答