这两天搞一个android手机和电脑客户端的视频通信
之前找了一个别人的源码,以前没学过java和android,看了两天才把流程搞明白
结果运行的时候 电脑上的服务端接到的图像是乱码的
开始以为是编解码有问题 搞了一天 看了别人编解码的流程(yuv420-->RGB),还是没发现什么问题
最后才发现原来socket通信有数据量的限制
因为我这个是基于UDP通信的 所以在传输过程中有可能会丢包
后来试验了一下发现在android手机上基于UDP的socket通信一次发送的数据量不能超过1400byte,
当然这是一个大概值,我用1400byte实验的时候传输是正确的,改成1500byte的时候就乱码了
这是我在用socket在手机端与电脑服务器端视频通信的时候测试的结果,
不过仍建议大家在用基于udp的socket通信时一次通信传输的数据量不要太大
当然如果是基于TCP的socket传输可能会允许一次传的数据量大一些
在用tcp传输时,在建立了tcp连接之后,如果发送端一次发送50k的数据,在接收端可能不能一次性全部接受
这时接收端就会分次接受,可能需要接受10次才能完全受到发送端发送的50k的数据