打印
[嵌入式linux]

linux 多网络接口 编程

[复制链接]
2901|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
junze|  楼主 | 2009-7-14 21:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假如现在系统中有多个网络接口,比如,eth0,ppp0,wlan0,eth1,等,那么用socket编程时,我要connect某个服务器,那linux是通过哪个接口来进行连接的?

相关帖子

来自 2楼
AmixIce| | 2009-8-3 17:28 | 只看该作者
本帖最后由 AmixIce 于 2009-8-3 17:32 编辑

内核应该会通过路由表找到要使用的接口.
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
60.168.80.1     *               255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     *               255.255.0.0     U     0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp0

比如你要链接到 192.168.0.23 , 他能判断到
192.168.0.0     *               255.255.0.0     U     0      0        0 eth0
这个接口可以到达, 那么它就用这个接口发出去.

比如你要链接到 122.0.23.1 , 找不到能到达的接口, 会使用default的接口发出去.
如果没有defualt这一项理由表, ping的时候会报错, 说目标地址不能达到.

但是加上有2个网卡都能到达某个地址, 比如eth0 eth1 接在同一个LAN, 而且要到达一个LAN内的地址, 就不知道怎么处理.

以上个人理解.

使用特权

评论回复
评分
参与人数 1威望 +10 收起 理由
sinanjj + 10
板凳
一朝成名| | 2009-7-15 09:07 | 只看该作者

你能让你的网卡同时运行吗?

能同时运行俩TCP?

这是个问题

使用特权

评论回复
地板
sinanjj| | 2009-8-4 14:22 | 只看该作者
路由表前面的优先

使用特权

评论回复
5
sinanjj| | 2011-10-6 03:27 | 只看该作者
6
realrots| | 2011-10-13 20:31 | 只看该作者
没问题啊,socket可以绑定对应的网口

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

60

帖子

1

粉丝