首页 > 解决方案 > 如何使程序与网络接口无关

问题描述

我目前在一个学生团队中,我们必须通过网络与机器人进行通信。团队成员拥有各种具有不同界面的 linux 发行版eth0wlp4s0等等enp4s0f1

我们尝试过:

  1. 从类似的东西中找出接口,然后生成一个包含该接口的文件,以由程序加载。这不适用于 VM 用户。
  2. 使用 boost tcp resolver 来找出接口,但这并不可靠。
  3. 使用设置脚本设置通用虚拟接口,以将默认接口与该虚拟接口桥接。这对以太网很有效,但我们也需要它为 wifi 工作,而且有些网卡不支持 wifi 桥接。

这些都不能很好地工作并且看起来像黑客,我们可以让每个人都将他们的网络接口作为参数传递给程序作为最后的手段,但只是想看看我们是否可以避免这种情况。

本质上,我们想要一种方法来使用通用名称对接口进行别名/链接,然后在程序中使用该名称以避免在每次运行时为每台机器配置它。这可能吗,如果可以,我们该怎么做?

标签: c++networkingboost-asio

解决方案


推荐阅读