首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux上,用C/C++实现基于IP的socket接口

问在Linux上,用C/C++实现基于IP的socket接口
EN

Stack Overflow用户
提问于 2021-12-24 15:25:13
回答 1查看 238关注 0票数 0

根据this answer,如果在调用connect时指定了目标地址,则系统将自动选择套接字使用的接口。我正在寻找的是一种简单的方法,在用C或C++调用connect之前知道该接口的名称。我知道这可以用命令route get to $ADDR来完成,但是在程序中调用外部命令似乎有点脏。除了解析路由表或调用route之外,在C/C++中有其他方法可以做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-24 15:47:30

您可以打开netlink套接字并查询路由,然后筛选所需的路由。下面是Linux上的一篇文章,描述了这种方法:

https://www.linuxjournal.com/article/7356

下面是C语言中的一个实现:

https://gist.github.com/javiermon/6272065

它只是需要一些调整,以满足你的需要。

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

https://stackoverflow.com/questions/70474367

复制
相关文章

相似问题

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