c - 通过本地UDP套接字发送数据包没有丢包

标签 c sockets network-programming udp

如果UDP客户端-服务器都在同一台机器上,那么两者不会丢包,这正常吗?我目前正在通过获取从客户端的 sendtorecvfrom 函数获取的字节之间的差异来计算数据包丢失?我做错了什么吗?

最佳答案

如果在这种情况下出现任何数据包丢失,我会非常感到惊讶。但另一方面,你使用了错误的方法来计算损失。

请记住,UDP 是一种面向数据包的协议(protocol),这意味着您发送的将是一个数据包,您收到的也将是一个数据包,并且数据大小没有差异你发送和接收。如果您发送 512 字节的数据包,接收方将始终收到完整的 512 字节数据包,或者根本接收不到任何数据。

这意味着您应该计算调用 sendto 的次数,并比较 recvfrom 返回数据包的次数。

关于c - 通过本地UDP套接字发送数据包没有丢包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42452269/

相关文章:

iphone - 我是否正确使用 CNCopyCurrentNetworkInfo?

c - 为什么不接受()阻止?

python - 原始套接字 python 数据包嗅探器

Java 从端口上的服务器读取返回 -1

tcp - 如何在局域网中找到我的服务器?

C 从套接字读取直到换行

c++ - 在C/C++中使用双指针有什么好处

c - 如何使用 libxml2 在 C 编程语言中使用模式文件验证 xml 文件

fgets 在换行前设置空字符后清除输入流

c++ - 用于将 void 指针转换为指向类型的指针的操作的术语是什么?