随笔分类 -  C/C++

C++实现DNS域名解析
摘要:一、概述现在来搞定DNS域名解析,其实这是前面一篇文章C++实现Ping里面的遗留问题,要干的活是ping的过程中画红线的部分:cmd下域名解析的命令是nslookup,比如“nslookup www.baidu.com”的结果如下:其中,Address返回的就是www.baidu.com对应的IP... 阅读全文
posted @ 2014-11-20 15:01 Snser 阅读(25177) 评论(5) 推荐(6)
C++实现Ping
摘要:这是一个老话题了,但是我刚学会...我们的目的是实现这么个东西:之所以用红框框一下是因为,从baidu.com到123.125.114.144的过程是DNS解析,我们暂时先实现ping的部分。基础知识ping的过程是向目的IP发送一个type=8的ICMP响应请求报文,目标主机收到这个报文之后,会向... 阅读全文
posted @ 2014-11-10 15:26 Snser 阅读(19006) 评论(10) 推荐(3)
如何计算毫秒级的时间差
摘要:计算毫秒级的时间差算是一个常见的需求吧...手头上是windows编程的项目,所以首先就想到的是GetTickCount(),但MSDN上这么说:写个程序试一下吧: 1 #include 2 #include 3 4 int main(void) 5 { 6 DWORD dwLast... 阅读全文
posted @ 2014-11-08 20:34 Snser 阅读(11695) 评论(0) 推荐(1)
如何产生 [0, 2147483647] 之间的随机数
摘要:一、简介随机数是编程中经常要用到的东西,但很遗憾的是在windows下vc和MinGW中的 RAND_MAX 都是32767,也就是说调用系统的rand()函数只能产生范围在[0, 32767]之间的随机数。那如何得到范围达到[0, 2147483647]的随机数呢?二、最直观的方法最直接的想法显然是调用rand()生成更大区间的随机数,比如两个rand()相加或者相乘,但是,两个rand()相加时,越大的数出现的概率越高,因为2=2+0=1+1=0+2,而5=0+5=1+4=2+3=3+2=4+1=5+0;两个rand()相乘时,是永远不可能得到更大区间范围内的质数的,比如两个[0, 4]范 阅读全文
posted @ 2012-11-20 20:12 Snser 阅读(2311) 评论(3) 推荐(0)