导航

2012年8月11日

摘要: 根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为ARP代理(ARP Proxy)。在每台安装有TCP/IP协议的电脑里都有一个AR.. 阅读全文

posted @ 2012-08-11 15:53 akeforever 阅读(159) 评论(0) 推荐(0)

摘要: 内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。常见的内存错误及其对策如下:* 内存分配未成功,却使用了它。 编程新手常犯这种错误,因为他们没有意识到内存分配会不成功。常用解决办法是,在使用内存之前检查指针是否为NULL。如果指针p是函数的参数,那么在函数的入口处用assert(p!=NULL)进行 检查。如果是用malloc或new来申请内存,应该用if(p==NULL) 或if(p!=NULL)进行防错处理。 * 内存分配.. 阅读全文

posted @ 2012-08-11 15:32 akeforever 阅读(219) 评论(0) 推荐(0)

2012年8月6日

摘要: WinPcap(windows packet capture)是一个开源的,运行于Win32平台下的体系结构,它的主要功能是进行数据包捕获和网络分析。它允许应用程序通过协议栈捕获和传输网络数据包,也包括内核级别的数据包过滤,网络静态引擎和支持远程数据包捕获等有用的功能。wireshark是捕获数据包的专业软件,它的运行是在WinPcap的支持之下的,所以安装wireshark时要装WinPcap。它可以为win32应用程序提供访问网络底层的能力。Winpcap提供了以下强大的功能:1.捕获原始的数据包2.设置filter,只捕获自己感兴趣的数据包3.方便的把捕获的数据包输出到文件和从文件输.. 阅读全文

posted @ 2012-08-06 10:46 akeforever 阅读(225) 评论(0) 推荐(0)

2012年7月26日

摘要: TCP类似于电话通信,UDP类似于邮件通信,UDP套接字就像一个邮箱,可以把许多不同来源的信件或包裹放入其中 。同时UDP也不需要使用accept()为每个客户获取一个新的套接字,而是利用绑定到想要端口号的相同套接字立即调用recvfrom()。 注释:由于基于UDP的网络应用程序是面向无连接的,所以不需要服务器的监听,也不需要客户端的连接请求。实现起来比TCP的面向连接的简单,适用于即时通信。主要用到的函数和方法和TCP的设计方法大致一样。 TCP通信过程: 客户端: 1.创建一个socket socket 2.开启线程 AfxBeginThread 3.建立服... 阅读全文

posted @ 2012-07-26 17:05 akeforever 阅读(659) 评论(0) 推荐(0)

2012年7月13日

摘要: #include <stdio.h>#include <malloc.h>#define NULL 0#define LEN sizeof(struct student)struct student{ long num; float score; struct student *next;};int n;struct student *creat(void) /*创建链表*/{ struct student *head; struct student *p1,*p2; n=0; p1=p2=(struct student*)malloc(LEN);/*... 阅读全文

posted @ 2012-07-13 16:47 akeforever 阅读(164) 评论(0) 推荐(0)

摘要: 1.函数指针int _tmain(int argc, _TCHAR* argv[]){ int max(int,int); int min(int,int); int add(int,int); //int (*fun)(int ,int); void process(int ,int ,int (*fun)(int ,int)); printf("Please enter two numbers:\n"); int a,b; scanf("%d,%d",&a,&b); process(a,b,max); process(a,b,mi.. 阅读全文

posted @ 2012-07-13 16:45 akeforever 阅读(114) 评论(0) 推荐(0)

摘要: 1.基本概念 一个变量的地址称为该变量的指针,存放地址(指针)的变量叫做指针变量。 在指针变量定义中,*是一个说明符,它表明其后的变量是指针变量,如p是指针变量,而不要认为“*p”是指针变量。 指针变量定义时指定的数据类型不是指针变量本身(变量存放的值)的数据类型,而是指针变量所指向的对象(或称目标)的数据类型。 指针变量存放的是所指向的某个变量的地址值,而普通变量保存的是该变量本身的值。 指针变量并不固定指向一个变量,可指向同类型的不同变量。2.定义指针变量 类型名 *变量名 表示该变量为指向某类型变量的指针变量 如: int *p; p只能指向整型变量,即只能存放整型变量的地址。 &quo 阅读全文

posted @ 2012-07-13 16:31 akeforever 阅读(178) 评论(0) 推荐(0)

2012年7月11日

摘要: 1.VS下的几个文件 .sln 是解决方案文件,里面包含这个解决方案包括了哪些项目,哪个项目是启动项目,项目生成顺序等诸如此类的信息。 .suo 是用户选项,用户与对这个解决方案的特定选项。 .ncb 是智能感知信息文件,输入.后提示的那些信息,还有函数信息等都在这里,如果有时发现智能感知不工作了,不能提示了,而又找不到其他原因, 可以尝试把.ncb文件删除,VS会自动重建一个。 .vcproj 是项目文件。这个就很具体了,包括项目类型,所有的源文件,项目定义等信息。2.malloc()函数 malloc向系统申请分配指定size个字节的内存空间。返回类型是void*类型。void* ... 阅读全文

posted @ 2012-07-11 13:28 akeforever 阅读(249) 评论(0) 推荐(0)

摘要: 1.在线ICON图标转换工具http://www.damotou.com/ 阅读全文

posted @ 2012-07-11 11:20 akeforever 阅读(102) 评论(0) 推荐(0)

2012年7月5日

摘要: 1.判断字符串是否为空 string.IsNullOrEmpty(string);2.判断两个字符串是否相等 string.Equals(string a, string b);3.字符串截取 string.Substring(Int32) //子字符串从指定的字符位置开始截取 string.Substring(Int32,Int32) //子字符串从指定的字符位置开始且具有指定的长度 示例: string str = "深圳市盈基实业有限公司国际通邓事文*深圳市盈基实业有限公司国际通邓事文"; str.Substring(11);//返回 “国际通邓事文*深圳市盈基实业有 阅读全文

posted @ 2012-07-05 16:02 akeforever 阅读(100) 评论(0) 推荐(0)