以编程方式使用 C++ 从我的 NIC 获取端口 #s
Programmatically Obtain Port #s from my NIC using C++
我很好奇有什么选项可以从 NIC 获取物理端口信息,然后我可以在连接丢失时将其用作故障转移。 即 端口 0 上的电线被拉动,我的程序识别出这一点并故障转移到端口 1 以保持连接。
我认为您在这里混淆了多个概念:
-
首先,这实际上取决于计算机上的网络设置方式。是否有多个网卡连接到同一网络?它们是否被视为单个逻辑适配器?
-
其次,假设您的操作系统级别网络仅将每个 NIC 用于单独的路由条目,如果电缆被拉动,您的程序将在下一个
read()
上看到 EOF(或在下一个write()
上看到信号)。在这种情况下,您可以重新建立连接(无需考虑实际使用的 NIC)。 -
通常,不能假装连接尚未在库级别终止。操作系统可能会提供一些低级魔法来做这样的事情,但在套接字级别,您将不得不重新建立连接(即两个端点都会感知连接终止)。
我同意亚历山大的观点。
但是,如果您正在运行Linux版本,并且仍然想了解与网络相关的所有内容,请查看/proc/net
,尤其是dev
和tcp
文件。
这是一个很好的起点:http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html
我认为你不能像其他人所说的那样。
如果你想做电路(不仅仅是连接)故障转移,我认为你必须在交换机(硬件)中进行。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- 数组长度,为什么从命令行获取时不能使用它?
- Boost Spirit,获取迭代器内部语义动作
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 具有默认值的引用获取函数
- xmake总是报告:错误:无法获取cxx的程序,为什么
- 以编程方式使用 C++ 从我的 NIC 获取端口 #s