socket(): Address family not supported by protocol?
时间:2011-09-19
来源:互联网
问题:
在X86平台,在PPC平台,以下程序运行正常,在ARM9平台下编译都通过了,但是一运行出现如下错误
socket(): Address family not supported by protocol
尝试了更改内核驱动,加载模块,还是没找到问题所在!
感觉还是哪里协议栈的问题请大侠指点!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <netinet/tcp.h>
#include <linux/sockios.h>
#include <net/if.h>
#include <net/route.h>
#include <linux/if_packet.h>
#include <linux/if_ether.h>
typedef struct sockaddr SA;
int main()
{
int sockfd;
struct sockaddr_ll sll;
struct ifreq ifr;
sockfd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
if(sockfd < 0)
{
perror("socket()");
return -1;
}
memset(&sll, 0, sizeof(sll));
strcpy(ifr.ifr_name, "eth0");
ioctl(sockfd, SIOCGIFINDEX, &ifr);
sll.sll_family = AF_PACKET;
sll.sll_ifindex = ifr.ifr_ifindex;
sll.sll_protocol = htons(ETH_P_ALL);
if(bind(sockfd, (SA *)&sll, sizeof(sll)) < 0)
{
perror("bind()");
return -1;
}
return sockfd;
}
作者: wuhua0904 发布时间: 2011-09-19
zcat /proc/config.gz | grep CONFIG_PACKET
作者: armed 发布时间: 2011-09-19
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28