我在用UDP协议写一个视频会议程序,当客户端发送较大的包(10k以上,只是偶尔会有这样的大包,就是所谓的关键帧)时,我把它拆分成很多1k左右的小包,然后在一个循环里逐个发送这些小包。服务器收到每个小包后转发给其他用户。现在会出现丢包的情况,即使用127.0.0.1也会丢,就是说不是网络造成的,是程序处理方法有缺陷。我知道问题大概所在,是因为客户端瞬时发送的数据太大了,超过socket缓冲区的大小,某个socket(不知道是服务器还是接收的客户端,是发送时还是接收时)来不及处理,缓冲区满了。但不知道应该怎么解决。我想到了几个办法,但是都有缺陷,请高手指教。
我在用UDP协议写一个视频会议程序,当客户端发送较大的包(10k以上,只是偶尔会有这样的大包,