制作 ping 库。我应该遵循实际的 ping 行为吗?

我正在制作一个 ping 库,主要是为了好玩。


我最近在我的实现中发现了一个错误,我没有检查接收到的打包的 seq。如果发生超时,我现在通过丢弃数据包来修复它。


但是今天,我看到 ping 实用程序打印收到的回复数据包,即使它们超时。


Request timeout for icmp_seq 2

Request timeout for icmp_seq 3

64 bytes from 80.67.169.18: icmp_seq=2 ttl=58 time=2216.104 ms

64 bytes from 80.67.169.18: icmp_seq=3 ttl=58 time=1216.559 ms

我不知道在我的图书馆做什么。我应该保留实际行为,还是需要将其调整为“旧”ping 方式?

该库不是为特定用途而设计的。我将用它来做一些项目,但我想知道每个选择的论据。

正如我所看到的,实施第二个选项将更加困难。

谢谢!(如果我的帖子不清楚,请不要犹豫,让我澄清,已经晚了。)

如果要查看项目地址:这里


梵蒂冈之花
浏览 196回答 2
2回答

茅侃侃

我理解您的问题是:“我是否应该向用户报告我已经报告为超时的数据包”。不,我不会这样做。在应用程序中,我不会期望数据包两次,而且我必须手动为这些数据包记账。如果您的图书馆进行簿记,并且我可以在稍后的某个时间点询问是否稍后收到了数据包,那就可以了。所以要么没有,要么像这样的一些 API:notifyReceivedLostPacket(seqId int) chan Packet

喵喔喔

我会投反对票:是的,你应该这样做。我们得到了回复;应该报告。应用程序必须弄清楚如何处理它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go