前几天在搞一个udp穿透功能的,有个同事,毕业2年多,平时的时候就是整天qq,要么看论坛,让他写段代码,功能是反复从服务端收取ip地址信息并存入map,然后向这些ip地址发送数据包.框架已经有了,只要加入相关的功能代码就可以了,结果代码写了两个小时,调试花了三个半小时,后来看了他写的代码,我晕.
插入map是这么写的
map<int, string>::iterator it = lmap.end();
it->first = 34;
it->second.ip = inet_ntoa(343);
...
...
把上面的这段代码改了,还是不行,再看,我再晕,
他两个客户端之间数据包封装和接受的读取位置根本就不对,难怪取不到需要的数据.
修改了代码,还是不行,再仔细看代码,终于找到了原因
原来他用了一个sockaddr_in变量存储服务器地址,
结果用recvfrom接受数据的时候,也用的这个变量,所以再次向服务器发送地址的时候,就错了.我当时实在有些抓狂,难道他写代码的时候就不能看看帮助文档?
这几天看看,继续老样子,qq + 论坛.
有的时候,让新手写代码,再修改实在是比较花时间的,确实还不如直接自己写,但是只要上进,新手总归回变老手的,关键还是看是否有学习的态度.
遇到这样的,我只能摇头.