ICMP,IP,UDP,TCP报头部分都有checksum(检验和)字段。ICMP和IP报头校验和的计算都很简单,使用RFC1071中给出的方法即可完成(如下)。
 
//计算校验和USHORT checksum(USHORT *buffer,int size){ unsigned long cksum=0; while(size>1) {  cksum+=*buffer++;  size-=sizeof(USHORT); } if(size)&#...
    有过多线程开发经历的人,对于“互斥对象,临界区,事件,信号量”这四个对象肯定不会陌生。就我自己而言,它们真是"让我欢喜让我忧"。"让我欢喜" 因为利用它们往往能解决掉非常棘手的问题,例如经典的"生产者-消费者"问题,"让我忧"因为,我经常把它们搞混淆,用的时候不知道到底该用哪个好,比如我觉互斥对象和信号量这两者很相似,在解决"生产者-消费者"问题时,为了实现线程同步很多例子中都用了信号量,为什么不用互斥对象实现呢?我试图用互斥对象来做了一下,结果失败了。
 
    今天我决定解决掉这个问题。仔细...
//2008.7.16   2条[1]//防止程序的多个实例同时运行HANDLE hMutex=CreateMutex(NULL,FALSE,"IADSOnlyOnce");/命名Mutex是全局对象 在所有的process都可以访问到     if(ERROR_ALREADY_EXISTS==::GetLastError()){       AfxMessageBox("该程序已经在运行中...");  ExitProcess(1);}  ...
//by redice http://blog.bookold.net redice@163.com//2008.6.10
 
 
☆ 如何获取网卡的MAC地址?
进行网络底层编程时,这是一个大家都无法回避的问题,也是一个比较棘手的问题。就我所知道的方法有如下几种:
1 使用NetBois命令。  在网上搜索,可以发现这是最常见的方法。不过有点复杂,使用起来也有限制,如果机器禁用了NetBois,那么这种方法就行不通了。
 
2 使用Winpcap Packet.dll中的PacketGetNetType函数。  熟悉Win...