c/c++语言开发共享如何将套接字动态绑定到一个网络接口?

目前我执行以下操作来侦听所有接口上的任何可用端口:

// 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

      (0)
      上一篇 2021年1月5日
      下一篇 2021年1月5日

      精彩推荐