XJC-git / CS305-LabAssignment2

0 stars 0 forks source link

关于parse_reply里是否需要调用check_data先做校验 #4

Open XJC-git opened 1 year ago

XJC-git commented 1 year ago

parse_reply里可以根据校验结果来决定是否继续分析报文,如果校验码错误抛出错误(raise ICMPSocketError('Wrong Checksum')并返回none正确返回icmp reply。在调用check_data之前,需要在parse reply里对收到的报文做以下处理:将icmp报文头的checksum字段清零,做完清零后再给到check_data的第一个参数data, 将icmp报文头的checksum提取出来,再传给check_data的第二个参数checksum

novada0 commented 1 year ago

不能返回none,会报错

XJC-git commented 1 year ago

不能返回none,会报错

怎么报错

novada0 commented 1 year ago

AttributeError: 'NoneType' object has no attribute 'id'

XJC-git commented 1 year ago

AttributeError: 'NoneType' object has no attribute 'id'

明白了,我修改一下,抛出异常(raise ICMPSocketError('Wrong Checksum')并返回None

ChaofengWu0 commented 1 year ago

抛出异常之后怎么返回呢?不是直接从函数弹出去了吗? image