我有一个名为A的C ++应用程序,它打开了与应用程序B的TCP连接。 应用程序C知道此连接并可以从B端关闭套接字。 我的问题是: 如何才能知道连接是否已正常关闭,或者是网络连接问题? 目前我有一个超时,知道何时没有接收,但这并不表示正确的关闭或网络连接问题。
我听说因为它是一个TCP连接,如果应用程序C正确关闭连接,操作系统必须知道它,你知道我怎么知道应用程序A连接已正确关闭?
如果您可以附加c ++示例,那将会有所帮助。
答案 0 :(得分:0)
如果连接正确关闭,recv()将返回零。如果它被不正确地关闭,recv()最终会超时(尽管可能还有其他原因),send()最终会返回-1,带有errno ECONNRESET或者它所调用的任何内容。