我的机器上有 3 个网络接口(interface) (eth0-2),每个接口(interface)都有自己的网络子网 192.168.10.,192.168.20.,192.168.30.。我想知道使用 BSD 套接字的人如何在特定 NIC 的端口上监听,例如在 eth1(192.168.20.)的端口 10000 上监听,目前我得到的似乎是列表/绑定(bind)仅限 eth0。我目前使用的操作系统是 Ubuntu,但我希望该解决方案能够在任何 posix 系统上运行/可移植。
附带说明一下,我正在用 C++ 开发我的应用程序,希望能提供一些有关 C++ 网络库的指导,我看过 Qt,但该许可证不适合我正在做的开发类型.
最佳答案
bind() 系统调用允许您指定绑定(bind)套接字的地址。您可以绑定(bind)到特定地址,也可以绑定(bind)到 INADDR_ANY,它将监听所有传入地址,而不管接口(interface)如何。
至于网络库,boost::asio 不错。当然,您可能希望指定比“网络库”更多的要求以获得更好的推荐。
关于c++ - 以 posix 方式绑定(bind)到特定的 NIC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4264340/