以编程方式使用 C++ 从我的 NIC 获取端口 #s

Programmatically Obtain Port #s from my NIC using C++

本文关键字:获取 NIC 我的 编程 方式使 C++      更新时间:2023-10-16

我很好奇有什么选项可以从 NIC 获取物理端口信息,然后我可以在连接丢失时将其用作故障转移。 即 端口 0 上的电线被拉动,我的程序识别出这一点并故障转移到端口 1 以保持连接。

我认为您在这里混淆了多个概念:

  • 首先,这实际上取决于计算机上的网络设置方式。是否有多个网卡连接到同一网络?它们是否被视为单个逻辑适配器?

  • 其次,假设您的操作系统级别网络仅将每个 NIC 用于单独的路由条目,如果电缆被拉动,您的程序将在下一个read()上看到 EOF(或在下一个write()上看到信号)。在这种情况下,您可以重新建立连接(无需考虑实际使用的 NIC)。

  • 通常,不能假装连接尚未在库级别终止。操作系统可能会提供一些低级魔法来做这样的事情,但在套接字级别,您将不得不重新建立连接(即两个端点都会感知连接终止)。

我同意亚历山大的观点。

但是,如果您正在运行Linux版本,并且仍然想了解与网络相关的所有内容,请查看/proc/net,尤其是devtcp文件。

这是一个很好的起点:http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html

我认为你不能像其他人所说的那样。

如果你想做电路(不仅仅是连接)故障转移,我认为你必须在交换机(硬件)中进行。