【问题标题】:Network connection in C++C++ 中的网络连接
【发布时间】:2011-10-06 07:24:03
【问题描述】:

在一个 c++ 应用程序中(我没有写)它使用网络连接。 在一个循环中,它总是检查连接是否仍然可用。 如果我要拔掉 LAN 电缆,我的应用程序会因为超时而失败。 我知道套接字号和连接信息吗?有什么方法可以知道是网络错误吗?

【问题讨论】:

  • 在 Linux 上,如果是 TCP,你可以尝试 /proc/net/tcp
  • 你使用的是什么操作系统?

标签: c++ sockets networking


【解决方案1】:

拔下电缆本身不一定是“网络错误”。如果 TCP 连接足够临时,无法达到 TCP 连接上设置的超时时间(在您的情况下是在套接字上完成的),那么它可以轻松地在断开连接中存活下来。因此,您可以将超时设置得更低,或者有一些其他逻辑来测试底层链路(物理接口)的状态,但这在实践中很少这样做,通常 TCP 超时对于大多数用途来说已经足够了。为什么对你来说不够好?

【讨论】:

  • 因为我想检测网线被拔掉等其他情况比如被对端关闭连接。
  • 这就是重点 - 拔下电缆与对等方关闭连接是完全不同的情况。在一种情况下,连接仍然有效/打开,而在另一种情况下则不是。
猜你喜欢
  • 2015-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 2018-04-18
  • 2010-09-22
  • 1970-01-01
  • 2018-07-21
相关资源
最近更新 更多