以下问题适用于winsock
TCP 套接字连接。
有没有办法丢弃任何已经发送但排队的内部winsock缓冲区,这样如果线路质量再次变得更好(即嘈杂的WLAN连接),它就不会被发送。不发送数据的原因是发送旧的视频直播流帧没有意义,应该丢弃所有旧帧,以便只发送最新的帧。
如果 SO_SNDBUF 设置为零,缓冲区会被丢弃吗?
编辑:我知道 UDP 在这里可能是更好的选择,但有一些理由反对使用 UDP:
- 组装数据包
- 数据包排序
- 设计决策
特别是排序需要在应用程序端进行额外的缓冲。丢弃帧数小于已处理的任何数据包的方法可能是一种选择,但这可能导致大量帧将被丢弃的情况。