实际上,我正在编写一款Android应用程序,该应用程序接收连接到PC的网络摄像头的图片。为了获得更多的帧速率,我使用UDP协议而不是TCP。这个想法是,PC将图片发送到手机的IP和端口。但是,手机的供应商有不同的公共端口,因此我无法直接寻址手机。因此,我尝试通过UDP打洞来解决问题,但这并没有起作用。当我的手机向PC发送一个数据包时,PC会获得手机的公共IP和端口。这每秒钟发生一次以保持连接开放。然后,服务器以最快的速度将网络帧发送到此IP和端口。但是,手机在1-2秒内仅收到10-15张图片。之后,提供商似乎过滤了每个后续数据包或类似的东西,因为手机不再接收任何数据包。
现在我的问题是:发生了什么(或者供应商在做什么),我该如何解决这个问题? TCP协议可以工作,但由于太多的开销和错误校正而对流媒体来说速度太慢了。