多个网卡时socket与网卡对应关系如何确定?

zpzkitt 2013-03-20 11:13:50
我的一个pc机上有多个网卡,我想要分别用ioctl控制网卡和获得网卡信息,但是我用socket创建原始套接字不知道怎么确定这个套接字是怎么与网卡相关的?
还有就是怎么用ioctl控制网卡开关(是数据获取的开关,但是不影响接收命令)?
...全文
1135 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
落风gy 2013-03-20
  • 打赏
  • 举报
回复
肯定有关啊,socket就是用来描述IP地址和端口的啊,一个网卡一个IP。不能用同个socket返回,每种服务都打开一个Socket,并绑定到一个端口上,是一一对应的。
赵4老师 2013-03-20
  • 打赏
  • 举报
回复
bind函数似乎是用来bind指定IP的
zpzkitt 2013-03-20
  • 打赏
  • 举报
回复
还有第一个问题啊。socket和网卡是否有关啊,我在一个程序中创建一个原始套接字能用一同一个socket返回值fd来控制或者获得每个网卡的信息吗?
zpzkitt 2013-03-20
  • 打赏
  • 举报
回复
引用 2 楼 RI00354 的回复:
http://blog.csdn.net/rao_warrior/article/details/8227603 我想这里应该有你想要的答案
这个我已经在网上看到过了,但是里面没有我想找的东西。不过还是谢谢你!
引用 3 楼 RI00354 的回复:
//启动网卡接口 int SetEtherStatusUP(const char *ethNum) { struct ifreq ifr; int sockfd; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("Create socket fails!\n"); return……
谢谢你啊!这个管用,不知道怎么做的我一直对这个设置不明白,如果有机会希望你能指点一点,谢谢你!
RI00354 2013-03-20
  • 打赏
  • 举报
回复
//启动网卡接口 int SetEtherStatusUP(const char *ethNum) { struct ifreq ifr; int sockfd; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("Create socket fails!\n"); return -1; } strcpy(ifr.ifr_name, ethNum); if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) < 0) { printf("ioctl SIOCGIFFLAGS fails!\n"); close(sockfd); return -1; } ifr.ifr_flags |= IFF_UP; if (ioctl(sockfd, SIOCSIFFLAGS, &ifr) < 0) { printf("ioctl SIOCSIFFLAGS fails!\n"); close(sockfd); return -1; } close(sockfd); return 1; } //关闭网卡接口 int SetEtherStatusDOWN(const char *ethNum) { struct ifreq ifr; int sockfd; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("Create socket fails!\n"); return -1; } strcpy(ifr.ifr_name, ethNum); if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) < 0) { printf("ioctl SIOCGIFFLAGS fails!\n"); close(sockfd); return -1; } ifr.ifr_flags &= ~IFF_UP; if (ioctl(sockfd, SIOCSIFFLAGS, &ifr) < 0) { printf("ioctl SIOCSIFFLAGS fails!\n"); close(sockfd); return -1; } close(sockfd); return 1; } 这两段代码希望对你有帮助
RI00354 2013-03-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/rao_warrior/article/details/8227603 我想这里应该有你想要的答案

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧