如何将套接字动态绑定到一个网络接口?

Ben*_*n S 4 c c++ sockets bind

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

// 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);
}
Run Code Online (Sandbox Code Playgroud)

我只想动态绑定到一个接口,即系统的非环回接口。

我该怎么做呢?

Bri*_*new 5

看一下 SO_BINDTODEVICE。Tuxology对此有很好的描述

  • 网站已关闭,此处缓存副本:http://web.archive.org/web/20090812134009/http://tuxology.net/tag/interface (3认同)