这两天搞一个android手机和电脑客户端的视频通信

之前找了一个别人的源码,以前没学过java和android,看了两天才把流程搞明白

结果运行的时候  电脑上的服务端接到的图像是乱码的

开始以为是编解码有问题  搞了一天  看了别人编解码的流程(yuv420-->RGB),还是没发现什么问题

最后才发现原来socket通信有数据量的限制

因为我这个是基于UDP通信的  所以在传输过程中有可能会丢包

后来试验了一下发现在android手机上基于UDP的socket通信一次发送的数据量不能超过1400byte,

当然这是一个大概值,我用1400byte实验的时候传输是正确的,改成1500byte的时候就乱码了

 这是我在用socket在手机端与电脑服务器端视频通信的时候测试的结果,

不过仍建议大家在用基于udp的socket通信时一次通信传输的数据量不要太大

 

当然如果是基于TCP的socket传输可能会允许一次传的数据量大一些

在用tcp传输时,在建立了tcp连接之后,如果发送端一次发送50k的数据,在接收端可能不能一次性全部接受

这时接收端就会分次接受,可能需要接受10次才能完全受到发送端发送的50k的数据