【发布时间】:2011-11-17 10:29:22
【问题描述】:
我是一个开源项目的开发人员,我一直遇到一些问题,服务器认为它已经完全响应了一个套接字(这意味着它已经发送了一个回复或关闭它以响应失败)和客户端卡在 poll() 中。经过一番研究,我发现 close() 并不总是会生成 POLLHUP 事件,但 shutdown(sock, 2) 会。
鉴于此,我正在考虑在错误处理的情况下添加一个 shutdown(sock,2) (除了 close() 调用之外)。有谁知道这会导致问题的一些原因?我在吠叫错误的树吗?我在想,如果服务器认为套接字已关闭,则客户端绝对不应该尝试使用该套接字进行任何其他操作,我想不出不添加它的理由,但我一直没有使用 tcp这么长时间的联系,并希望得到一些建议。
【问题讨论】:
-
大脑,这是一本有趣的读物,但它没有给我任何理由,我不想将关闭与关闭一起调用。