c++ TCP连接关闭
C++ TCP connection closing
我有一个c++应用程序a,它打开一个TCP连接到应用程序B。应用程序C知道这个连接,可以从B端关闭套接字。我的问题是:我怎么知道连接在正常关闭时已经关闭,还是网络连接有问题?目前我有一个超时,它知道什么时候没有接收,但这并不表明正确的关闭或网络连接问题。
我听说这是一个TCP连接,如果应用程序C正确关闭连接,操作系统必须知道它,你知道我怎么知道在应用程序a中连接已经正确关闭吗?
如果你能附上一个c++示例,将会很有帮助。
如果连接已正确关闭,recv()将返回零。如果关闭不当,recv()最终将超时(尽管可能有其他原因),而send()最终将返回-1,并带有errno ECONNRESET或其他名称。
相关文章:
- 计算出有多少客户端可以连接到我正在使用的一些tcp服务器代码
- 通过单独的 tcp 流建立 http 连接
- 读取 TCP 标头并使用RAW_SOCKET管理 TCP 连接
- C++ TCP 套接字通信 - 连接按预期工作,几秒钟后失败,没有收到新数据,read() 和 recv() 块
- 如何在没有侦听器的情况下创建 TCP 连接?
- 接受超时的 TCP 连接
- 如何使用 TCP 连接发送大块数据
- 如何在 c++ 中确定 tcp 客户端是否连接
- 尝试连接到 TCP 套接字 (Linux) 时连接被拒绝
- 仅通过建立一次TCP连接将Recv从客户端发送到服务器套接字
- 如何正确解析 Java+C++ TCP 连接中的 JSON 对象?
- 从多个 tcp 连接读取数据
- 同一提升 TCP 套接字对象上的多个连接
- TCP/IP 客户端是否可以连接到无法访问的 IP
- TCP 连接中的超时,没有数据交换
- 在服务器关闭的TCP连接上发送数据时的行为不一致
- 在写入过程中立即使用boost::asio检测关闭的TCP连接
- 尝试在TCP中多次连接()
- 在使用 Poll() 的 TCP 服务器 - 客户端连接中,我是否需要手动设置事件?我从来没有到达 POLLOUT 来写
- 使用SecureStreamSocket与poco连接TCP服务器时,如何发送证书