目前我执行以下操作来侦听所有接口上的任何可用端口:
// hints struct for the getaddrinfo call struct addrinfo hints, *res; memset(&hints, 0, sizeof hints); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; // Fill in addrinfo with getaddrinfo if (getaddrinfo(NULL, "0", &hints, &res) != 0) { cerr << "Couldn't getaddrinfo." << endl; exit(-1); }
我想动态绑定到一个接口,即系统的非环回接口。
我该怎么做呢?
看看SO_BINDTODEVICE。 Tuxology对此有很好的描述
如果你想要一本关于此事的优秀书籍:
W. Richard Stevens的UNIX网络编程,分两卷。 第一卷包括sockets。
还有UNIX环境中的高级编程,也是由Stevens编写的,并在第3版由Rago更新。
这些被广泛认为是UNIX / Linux /等的经典和标准参考
您可以使用SIOCGIFADDR ioctl()
来确定特定接口的IP地址,然后bind()
到该地址。
以上就是c/c++开发分享如何将套接字动态绑定到一个网络接口?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/541934.html