我有一个简单的客户端/服务器设置。服务器是用C语言编写的,查询服务器的客户端是Java。
我的问题是,在连接中发送带宽密集型数据(如视频帧)时,会丢失一半的数据包。我确保在服务器端正确地对UDP数据包进行了分段(UDP的最大有效载荷长度为2^16)。我验证了服务器正在发送数据包(printf sendto()的结果)。但是Java似乎没有接收到一半的数据。
此外,当我切换到TCP时,所有视频帧都可以通过,但延迟开始增加,在几秒钟的运行时间后添加了数秒的延迟。
我是否遗漏了任何显而易见的事情?我无法解决这个问题。
我的问题是,在连接中发送带宽密集型数据(如视频帧)时,会丢失一半的数据包。我确保在服务器端正确地对UDP数据包进行了分段(UDP的最大有效载荷长度为2^16)。我验证了服务器正在发送数据包(printf sendto()的结果)。但是Java似乎没有接收到一半的数据。
此外,当我切换到TCP时,所有视频帧都可以通过,但延迟开始增加,在几秒钟的运行时间后添加了数秒的延迟。
我是否遗漏了任何显而易见的事情?我无法解决这个问题。