-
大小: 6KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-06-05
- 语言: Java
- 标签: Android getifaddrs freeifaddrs
资源简介
解决Android下getifaddrs和freeifaddrs undefined reference 的问题,即android下的c实现
代码片段和文件信息
/*
Copyright (c) 2013 Kenneth MacKay
All rights reserved.
Redistribution and use in source and binary forms with or without modification
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS“ AND
ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES
(INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include “ifaddrs.h“
#include
#include
#include
#include
#include
#include
#include
#include nk.h>
#include nk.h>
typedef struct NetlinkList
{
struct NetlinkList *m_next;
struct nlmsghdr *m_data;
unsigned int m_size;
} NetlinkList;
static int netlink_socket(void)
{
int l_socket = socket(PF_NETlink SOCK_RAW NETlink_ROUTE);
if(l_socket < 0)
{
return -1;
}
struct sockaddr_nl l_addr;
memset(&l_addr 0 sizeof(l_addr));
l_addr.nl_family = AF_NETlink;
if(bind(l_socket (struct sockaddr *)&l_addr sizeof(l_addr)) < 0)
{
close(l_socket);
return -1;
}
return l_socket;
}
static int netlink_send(int p_socket int p_request)
{
char l_buffer[NLMSG_ALIGN(sizeof(struct nlmsghdr)) + NLMSG_ALIGN(sizeof(struct rtgenmsg))];
memset(l_buffer 0 sizeof(l_buffer));
struct nlmsghdr *l_hdr = (struct nlmsghdr *)l_buffer;
struct rtgenmsg *l_msg = (struct rtgenmsg *)NLMSG_DATA(l_hdr);
l_hdr->nlmsg_len = NLMSG_LENGTH(sizeof(*l_msg));
l_hdr->nlmsg_type = p_request;
l_hdr->nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
l_hdr->nlmsg_pid = 0;
l_hdr->nlmsg_seq = p_socket;
l_msg->rtgen_family = AF_UNSPEC;
struct sockaddr_nl l_addr;
memset(&l_addr 0 sizeof(l_addr));
l_addr.nl_family = AF_NETlink;
return (sendto(p_socket l_hdr l_hdr->nlmsg_len 0 (struct sockaddr *)&l_addr sizeof(l_addr)));
}
static int netlink_recv(int p_socket void *p_buffer size_t p_len)
{
struct msghdr l_msg;
struct iovec l_iov = { p
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-07-06 03:19 android-ifaddrs-master\
文件 235 2013-07-06 03:19 android-ifaddrs-master\README.md
文件 18711 2013-07-06 03:19 android-ifaddrs-master\ifaddrs.c
文件 1853 2013-07-06 03:19 android-ifaddrs-master\ifaddrs.h
相关资源
- android网上订餐系统
- Android中利用App实现消息推送机制的代
- Android通用框架设计与完整电商APP开发
- MPAndroidChart.jar MPAndroidChart_3.1.0.jar 最新
- android WIFI DEMO(扫描附近WIFI强度)
- Android调用Camera实现拍照--github地址
- 卡马克卷轴算法android版
- Android 点餐系统体系结构设计 UML
- Android中opengl es要实现Obj格式的3D导入
- Android捏泡泡游戏
- android 引入A*算法
- Android开发从入门到精通第2版.rar
- Android智能穿戴设备开发实战详解.ra
- android版《魔塔》
- Android中FTP含进度上传、、删除文件
- android源码程序:安卓闹钟
- android聊天室客户端与服务端PC代码
- android触摸时扭曲变形图片照片,图片
- Android音频和视频播放
- android 自定义相机可连续拍照,不变形
- android 星级评分条的用法
- android4.2 gps hal
- Android游戏数独-mars视频源码
- 实战Android:图片处理之ColorMatrix和M
- AccessbilityServiceTest
- Android简易计算器
- Android jni
- thumbnails-android略缩图源码
- SoundRecorder
- SQlite Android SQLite的应用 简易的学生
评论
共有 条评论