Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java应用程序阻止UDP RTP流_Java_Sockets_Udp_Vlc_Vlcj - Fatal编程技术网

从java应用程序阻止UDP RTP流

从java应用程序阻止UDP RTP流,java,sockets,udp,vlc,vlcj,Java,Sockets,Udp,Vlc,Vlcj,嗨,我正在制作一个应用程序,从android到pc流视频。我有正确的流设置,并能够打开包含我的RTP流在任何pc上VLC流信息的.sdp文件。我可以得到视频和音频流,它的作品伟大 我还在为PC编写一个java应用程序,它将能够使用vlcj查看此流,并在它和android应用程序之间执行其他操作。我的问题是,由于某种原因,这个应用程序只能在我大学宿舍的电脑上正常运行。在查看wireshark中的流量时,我的计算机科学实验室和家庭网络上的PC会给我目标无法访问端口无法访问错误。请记住,这只能通过我的

嗨,我正在制作一个应用程序,从android到pc流视频。我有正确的流设置,并能够打开包含我的RTP流在任何pc上VLC流信息的.sdp文件。我可以得到视频和音频流,它的作品伟大

我还在为PC编写一个java应用程序,它将能够使用vlcj查看此流,并在它和android应用程序之间执行其他操作。我的问题是,由于某种原因,这个应用程序只能在我大学宿舍的电脑上正常运行。在查看wireshark中的流量时,我的计算机科学实验室和家庭网络上的PC会给我目标无法访问端口无法访问错误。请记住,这只能通过我的vlcj实现实现,使用实际的vlc客户机它可以完美地工作。它在我的家用电脑上也能正常工作,它的设置应该和我宿舍的一样

vlcj的MediaPlayer的代码中有以下回调:

@Override
public void buffering(MediaPlayer mediaPlayer, float newCache) {
    System.out.println("Buffering " + newCache);
}
在工作计算机中,它打印0.0,然后在视频显示和播放的地方继续打印到100。在它不工作的计算机上,它只是说0.0,然后停止

我真的无法理解这个问题,因为它使用与vlc客户机相同的DLL,并且数据包在使用普通vlc客户机时通过。我使用的jre是否可以拒绝udp数据包


我刚买了一台电脑用它。。。我能想到的唯一不同的是,在工作的计算机中,它们有实际的显卡,而非工作的计算机有集成显卡。。。但是我不认为这会有什么不同。

如果有防火墙阻止源流到达cs实验室的PC,您可能会看到这样的问题。如果VLC客户端运行正常,可能是因为它支持NAT网络地址转换,我不确定您是否能够验证它。netstat-nap | grep应该验证您的目标端口是否未侦听。我没有使用客户端,但是,看看您用来打开套接字的API。验证您提供给aPI的地址和端口,并打印错误/debug msgs.netstat-nap根本不给我任何输出。我使用的地址是192.168.1.9我的笔记本电脑地址,端口是5004和5006。netstat-na显示5004打开,但不是5006。当我使用普通的VLC windows客户端时,它显示5004和5006都打开。我使用的API只是windows客户端后面库的包装器,应该做同样的事情。NAT在本地网络上会起作用吗?对不起,我不太了解。老实说,除了ICMP message Destination Unreachable type 3(在Wireshark中表示端口不可访问)之外,我找不到任何错误消息。您正在尝试播放的MRL是什么,您到底是如何播放的,您能发布一些代码吗?vlcj和Java根本不涉及这个问题的网络方面,这一切都是在VLC中本机完成的,即JVM没有阻止您的UDP数据包。我与我的android设备有一个tcp连接,我使用它获取.sdp文件并将其保存在C:\\Users\\tjhel\u 000\\Documents\\GitHub\\GoogleGlassWhite\\GlassStreamClient\\rtpsession.sdp,暂时作为常量。这部分工作正常,我得到了一个正确的.sdp文件:然后我将其作为MediaController类中的一个实例变量,并在mrl之上调用playmedia。然后,我将启动开始事件,然后缓冲0.0,然后从MediaPlayerEventAdapter播放事件。这似乎很奇怪,因为正如我所说,VLC将从同一个文件播放