文章标题
来源:互联网 发布:邬贺铨 大数据 编辑:程序博客网 时间:2024/06/15 22:11
**类快牙APP开发笔记**
我的愿望是有一个PC端以及一个Android端,可以进行PC—PC,PC—Android,Android—PC,Android—Android间相互传送文件
2015.5.4
今天通过SendARP函数来实现搜索局域网所有在线IP的功能,不过速率有点慢,并不符合我的要求。于是我想到了三个方法
1, 多线程 : 因为每次的SendARP函数对于在线IP都能够在极短的时间内获取到数据。所以我们对每次的循环进行时间限制,将其限制在0.1s中 我们就能够极大提高我们的速率。(有待研究多线程,毕竟我android比较好点);
2,WNetOpenEnum: 不过貌似我被误导了,这个并不能获取到。 - -
3, 通过shell指令的配合C 语言来实现快速获取本机的ARP表;
下面是SendARP的代码
#ifndef WIN32_LEAN_AND_MEAN#define WIN32_LEAN_AND_MEAN#endif#include <winsock2.h>#include <iphlpapi.h>#include <stdio.h>#include <stdlib.h>#pragma comment(lib, "iphlpapi.lib")#pragma comment(lib, "ws2_32.lib")int main(){ IPAddr DestIP, SrcIP = 0; // DestIP 目标IP SrcIP 发送端IP 可以不填 ULONG MacAddr[2]; ULONG PhyAddrLen = 100; BYTE *szByteBuf; BYTE *szIPByte; int i , flag; DestIP = inet_addr("172.26.130.3"); printf("当前局域网在线IP\n"); szByteBuf = (BYTE *)MacAddr; szIPByte = &DestIP; for (szIPByte[3]; szIPByte[3] < 0xFF; szIPByte[3]++) { flag = SendARP(DestIP, SrcIP, &MacAddr, &PhyAddrLen); if (flag == NO_ERROR){ printf("%d.%d.%d.%d\n", szIPByte[0], szIPByte[1], szIPByte[2], szIPByte[3]); } PhyAddrLen = 6;//这里非常有必要说明一下, 因为每次函数执行成功后,该数值都会被改变,所以我们必须没次循环都进行一次初始化 } return 0;}
今天就先研究到这里 晚点将WNetOpenEnum的MSDN翻译加上百度的资料上传上来。 百度上的有一些错误
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- Reaver 基本用法示例
- Linked List Cycle II
- 安卓第二十天:ImageView与嵌套LinearLayout
- K短路【模板】
- sql server execution plan - 执行计划的诡异 ( 一 )
- 文章标题
- LAMP学习环境
- springMVC学习(基于注解的MVC)
- 转移代码
- POJ 题目1286 Necklace of Beads(Polya定理)
- Android不错的UI
- Android intent间数据的传输
- linux各个版本下载地址,利用镜像服务器下载
- 【FZU2190】非提的救赎【单调栈】