5大编程语言对决!第1名太猛了!

编程技术宇宙

共 1141字,需浏览 3分钟

 ·

2022-05-31 21:58

大家好,我是轩辕。

今天,我的知识星球里的第二期学习活动:手写一个抓包软件的第一阶段正式收官了!

第一阶段的收官之战,是大家写的程序来进行PK,分析同样的数据包文件,看谁分析的更快。

收官之战任务:

解析pcap文件,遍历文件中的所有数据包,解析以太网、IP协议、ARP协议、UDP协议、DNS协议,解析结果按照指定格式,分别输出到4个文件中:

  • arp.txt
  • ip.txt
  • udp.txt
  • dns.txt

这一次的编程学习活动,一开始的时候,还有六十多人参加,到后面躺平的就越来越多了。

最终,只有10位同学完成,提交作业。涉及的语言有C、C++、Go、Python、Java:

所有同学的作业,在同样的环境下(Linux 2核4GB内存)各运行两次,取最好成绩排名。

其中,有两位同学的程序出现了bug,运行不成功,只有8位成功运行,成绩有效。

最终的完成排名如下:

  1. [C++]月:146 ms 148 ms
  2. [C++]endless: 317 ms 318 ms
  3. [Python]Mr.欧谢特 629 ms 631 ms
  4. [Go]我的朋友叫垃圾呆:778 ms 794 ms
  5. [C]letangers: 925 ms 935 ms
  6. [Python]Walker: 1731 ms 1742 ms
  7. [Java]小满同学:5787 ms 5829 ms
  8. [Python]厉害:11906 ms 11705 ms
  9. [Java]橘子🍊:未成功运行
  10. [C++]Annihilation_choice:未成功运行

要恭喜第一名同学,群里叫他“月佬”,以差不多0.1s的时间就完成了23W+的数据包分析,确实是很强!

按照之前的约定,第一名的同学,送一套价值四百多元的《大话计算机》系列丛书!

这一次因为人少,就没有分语言赛道了,对Java、Python的小伙伴儿不是太公平。后面如果人多的话,将会分编译型语言、字节码语言、解释型语言三个赛道,每个赛道第一名都有奖品!

另外让我意外的是,@欧谢特同学,用Python语言完成,居然闯进了前三甲,打败了使用Go和C语言的两位同学!据说他完成后足足花了两天时间来优化,还大量用到了CPU的缓存机制!

这次学习活动,大家都收获满满,计算机网络通信协议,原来只存在于书本和视频里的知识,变成了自己程序里要处理的数据,神秘的面纱被揭开了,学习起来事半功倍!

手写一个抓包软件的活动暂时告一段落,不少同学要去忙着期末考试了。

也欢迎新的朋友加入星球,跟我们一起继续这场计算机编程+计网学习的冒险之旅。

接下来要挑战难度更高的TCP、HTTP、实时抓包处理了。

暑假我们再会~

PS:各位搞安全的小伙伴儿,你们的呼声我听到了,逆向分析已经提上日程,等我规划好就可以开整了!


浏览 46
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报