首页 新闻 赞助 找找看

socket相关 有俩个网卡的电脑 怎么判断哪个网卡是用来上网的

0
悬赏园豆:5 [已解决问题] 解决于 2013-10-25 15:52

最近项目里用到socket发送一些命令给服务器程序  用来获取一些数据  但是当遇到有俩个网卡的电脑时该怎么进行判断呢?

比如说一个无线网卡用来共享上网  但是是不能连接服务器的
而另一个本地连接才是可以连接服务器的 俩个都是可用的  状态都是up 
如果我监听无线网卡的ip端口  就会收不到服务器的回发 
现在是不能确定到底监听哪个网卡 
 

下面是我写的代码:

     /// <summary>
        /// 获取Ip4地址
        /// </summary>
        /// <param name="port"></param>
        /// <returns></returns>
        private IPEndPoint getIpAdderss(int port)
        {
            IPEndPoint result = null;
       //取得本机IP地址列表 IPAddress[] ipEntry
= Dns.GetHostEntry(Dns.GetHostName()).AddressList; foreach (IPAddress var in ipEntry) {
         //排除ipv6网卡
if (!var.IsIPv6LinkLocal) { result = new IPEndPoint(var, port); break; } }
       //如果电脑有多个ip4网卡该怎么排除呢??
return result; }

跪求大神帮忙。。。

Moulton的主页 Moulton | 菜鸟二级 | 园豆:206
提问于:2013-10-24 17:18
< >
分享
最佳答案
0

问题已解决  谢谢大家的激烈讨论

Moulton | 菜鸟二级 |园豆:206 | 2013-10-25 11:29
其他回答(2)
0

如果有多个,就一个个的试,如果可以连通并且完成数据库传递,就break了,这样行不

收获园豆:2
会长 | 园豆:12401 (专家六级) | 2013-10-24 17:21

这是我相到最糟糕的方案   就是想知道有没有其他的方案

支持(0) 反对(0) Moulton | 园豆:206 (菜鸟二级) | 2013-10-24 17:24

@LYDNG: 坐等高人了。我觉得这方案还行吧,一个机器也不可能装太多网卡

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 2013-10-24 17:25
0

上面的代码是在客户端的还是在服务端的?

如果在客户端的,那么为什么要拿到客户端的IP地址呢,直接连接到服务端的IP即可。

如果是在服务端的,获取IP地址是做什么用的?用来监听还是其它?

收获园豆:3
诶碧司 | 园豆:1912 (小虾三级) | 2013-10-24 23:00

是在客户端的  我需要获取该IPEndPoint来监听该端口  以获取服务器发送给客户端的消息 不然怎么收到服务器的消息呢?

支持(0) 反对(0) Moulton | 园豆:206 (菜鸟二级) | 2013-10-25 09:06

@LYDNG: 使用下面的语句监听所有IP,不需要管它有多少个网卡

result = new IPEndPoint(IPAddress.Any, port);

支持(0) 反对(0) 诶碧司 | 园豆:1912 (小虾三级) | 2013-10-25 10:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册