c++ - 以 posix 方式绑定(bind)到特定的 NIC

标签 c++ c network-programming

我的机器上有 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/

相关文章:

c++ - 枚举和结构调用

c++ - gcc c++11 对用户定义的常量和模板参数包的限制

C: 如何使这个函数线程安全?

c - 多线程程序是否并行处理多个信号?

linux - 了解 "cat proc/net/udp"

c++ - 使用 CRTP 技术确保唯一的模板参数

C语言,如何修复段错误

c++ - IP 标志的 Don't Fragment Bit 在哪里使用?

security - 为什么 MAVLink 协议(protocol)不安全?

c++ - VS 2010 中的内存限制与 c++ 或只是另一个错误?