首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅将一个套接字动态绑定到一个网络接口?

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

Stack Overflow用户
提问于 2009-07-13 13:20:10
回答 3查看 2.6K关注 0票数 3

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

代码语言:javascript
复制
// 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);
}

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

我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-13 13:25:54

看看SO_BINDTODEVICE吧。Tuxology有一个这样的good description

票数 4
EN

Stack Overflow用户

发布于 2009-07-13 15:15:45

如果你想要一本关于这个问题的好书:

《UNIX网络编程》,W.Richard Stevens著,分两卷。第一卷涵盖插座。

也是在UNIX环境中的高级编程,也是由史蒂文斯编写,并由Rago在第三版中更新。

这些被广泛认为是UNIX / Linux /等人的经典和标准参考资料

票数 1
EN

Stack Overflow用户

发布于 2009-07-13 15:21:16

您可以使用SIOCGIFADDR ioctl()来确定特定接口的IP地址,然后使用bind()连接到该地址。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1119401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档