linux 多网络接口 编程
假如现在系统中有多个网络接口,比如,eth0,ppp0,wlan0,eth1,等,那么用socket编程时,我要connect某个服务器,那linux是通过哪个接口来进行连接的?<br /><br /> 本帖最后由 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内的地址, 就不知道怎么处理.
以上个人理解.
你能让你的网卡同时运行吗?
能同时运行俩TCP?<br /><br />这是个问题 路由表前面的优先 https://bbs.21ic.com/viewthread.php?tid=102774&highlight=%E8%AF%B7%E6%95%99%E4%B8%80%E4%B8%AA%E5%A4%9A%E7%BD%91%E5%8D%A1%E9%80%9A%E4%BF%A1%E7%9A%84%E9%97%AE%E9%A2%98 没问题啊,socket可以绑定对应的网口
页:
[1]