2011-10-09 216 views
0

我有一个名为A的C++应用程序,该应用程序打开与应用程序B的TCP连接。 应用程序C知道此连接,并可关闭B端的套接字。 我的问题是: 如何知道连接是否在正确关闭时关闭,或者是网络连接问题? 目前我有一个超时,它知道什么时候没有接收,但这并不表示正确的关闭或网络连接问题。C++ TCP连接关闭

听说,因为它是,如果应用程序C一个TCP连接关闭连接正确的操作系统必须了解它,你知道我怎么能在应用程序A就知道连接已正常关闭?

如果你可以附加一个C++样本,这将是有益的。

回答

0

如果连接正确关闭,recv()将返回零。如果关闭不当,recv()最终会超时(尽管可能有其他原因),并且send()最终会返回-1,并带有errno ECONNRESET或任何它的调用。