永发信息网

linux下c网络编程问题(不能使用第三方类库,如libpcap等)

答案:1  悬赏:50  手机版
解决时间 2021-05-02 17:07
  • 提问者网友:杀手的诗
  • 2021-05-02 07:39

应用一:
1、能够捕获网络上的数据包
2.若捕获的为ip包,打印其上层的协议类型,若上层的协议为tcp/udp则再次打印其应用层协议类型(如HTTP、SMTP、qq、msn等)
3、若捕获的为非ip包,则打印其源mac,目的mac,以及协议类型
4、能够在端口9001上监听其他应用的udp请求,并打印其请求的数据包内容(头部及数据体部分独立打印)

5、回复其他应用的udp请求

 

应用二:
1、与应用一通过9001端口通讯,给应用一发送数据帧(帧格式如下所示)
2.、支持使用ip地址作为参数连接应用二
3、数据包长度随机产生,范围:1-255
4、打印应用一回复的内容并记录到文件

请求帧格式至少包含:
#版本号   3bit
#请求类型  2bit  00->Request 01->response 10/11->reserved
#数据长度  8bit
#序列号   16bit,每发送一个数据包值增一
#数据体   0-255byte,起始位置包含32字节欢迎信息,其他内容随机生成

最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-05-02 09:13
建议你看看WireShark源码,之前叫做Ethereal,它能满足你的全部要求。最好下载老点的版本,如Ethereal0.99之类的,老版本代码量少更容易上手。这个是它的官方网址, http://www.wireshark.org/,有兴趣可以研究下。
希望对你有帮助!!!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯