目前,我执行以下操作来侦听所有接口上的任何可用端口:
// 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);
}我只想动态绑定到一个接口,即系统的非环回接口。
我该怎么做呢?
发布于 2009-07-13 13:25:54
看看SO_BINDTODEVICE吧。Tuxology有一个这样的good description
发布于 2009-07-13 15:15:45
如果你想要一本关于这个问题的好书:
《UNIX网络编程》,W.Richard Stevens著,分两卷。第一卷涵盖插座。
也是在UNIX环境中的高级编程,也是由史蒂文斯编写,并由Rago在第三版中更新。
这些被广泛认为是UNIX / Linux /等人的经典和标准参考资料
发布于 2009-07-13 15:21:16
您可以使用SIOCGIFADDR ioctl()来确定特定接口的IP地址,然后使用bind()连接到该地址。
https://stackoverflow.com/questions/1119401
复制相似问题