c++

最近手头有点工作跟这个有段, 就实现一个简单ping. 就实现如图功能就行. 先说下原理: 使用ICMP协议, 组织ICMP包 socket_id = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); 告诉host我们要使用发送的报文是ICMP, 至于怎么发, 以及TCP通信的就是不是我们这里要关心的了 ##组织ICMP标示 p_icmp = (struct icmp *)buffer; p_icmp->icmp_type = ICMP_ECHO; p_icmp->icmp_code = 0; p_icmp->icmp_cksum = 0; p_icmp->icmp_seq = 12345; p_icmp->icmp_id = getpid(); p_icmp->icmp_cksum = checkSum((uint16_t*)p_icmp, 64); 这里组织我们需要的ICMP的一些标示 3.发送ICMP给ho
2017-08-25
1分钟阅读时长
c++
最近跟同学讨论c++在编译时g++ -L.. 和LD_LIBRARY_PATH的问题,今天在做一个东西的时候发现,我对这两个东西的理解是错误的,经过一番研究,写下我对这些东西的想法,如果有不对的地方,欢迎指正。 我遇到的问题: g++ multiple.cpp -L/usr/local/lib -lboost_program_options编译完后,ldd ./a.out发现libboost_program_options.
2017-08-25
2分钟阅读时长
我之前写过一篇关于LD_LIBRARY_PATH与gcc/g++ -L的关系的文章. 在用CPACK制作了一个Debian安装包,然后我在/home/.bashrc里添加了export LD_LIBRARY_PATH=/usr/loca/lib:$LD_LIBRARY_PATH, 这个不够优美, 经过一番寻找终于找到了—ld.so.conf可以完美解决这个问题。 为什么LD_LIBRARY_PATH不行? 可以看看老外是怎么说的 升级共享库时
2017-08-25
4分钟阅读时长
使用System V信号量不是那么熟练. 写了一个Monitor监测线程, 一个实际执行的Product线程. 本来的想法两个线程一个一个的调, 但是我忘了把另外一个线程注释掉了.然后坑就这么产生了. 先看Monitor代码: 然后gdb去调试的时候, 总是出现 我一开始以为我的程序出错了, 因为我System V信号量用的不是很熟练, 但是我发现我写的没有错呀, 都是这样
2017-08-25
3分钟阅读时长
c++
有一天测试人员对我说, 我怎么测试10点开站会这个功能呢? 当时也没有经过脑子, 直接对她说, 你把系统时间修改一下吧. 好嘛, 麻烦来了. 测试对我说, 你新开发的程序有BUG, 程序没反应了. 我晕, 哥已经测过的, 怎么会有问题呢? 然后我就做在那开发排地雷. 后来经过仔细排查, 排查到一个别人封装的接口, 我把那个程序大致的样子写出来. 程序总是在这个函数中阻塞住. 为什么会
2017-08-25
1分钟阅读时长
c++