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
Java 使用Gstreamer打开和关闭或关闭端口_Java_Sockets_Gstreamer - Fatal编程技术网

Java 使用Gstreamer打开和关闭或关闭端口

Java 使用Gstreamer打开和关闭或关闭端口,java,sockets,gstreamer,Java,Sockets,Gstreamer,我正在尝试开发一个RTP代理服务器,已经完成了一半。我有一个rtpbin,从那里我可以将文件发送到远程主机。但是现在我的主管说,应该实现一种方法来打开和关闭套接字(套接字管理),这需要使用Gstreamer来完成,并且代码应该只使用java 我的代码的一部分如下所示 //send data over network via udp Element udpSink_rtpout = ElementFactory.make("udpsink", "udpsink0") ;

我正在尝试开发一个
RTP代理服务器
,已经完成了一半。我有一个
rtpbin
,从那里我可以将文件发送到远程主机。但是现在我的主管说,应该实现一种方法来打开和关闭套接字(套接字管理),这需要使用Gstreamer来完成,并且代码应该只使用java

我的代码的一部分如下所示

        //send data over network via udp 

    Element udpSink_rtpout = ElementFactory.make("udpsink", "udpsink0") ; 
    udpSink_rtpout.set("host", REMOTE_HOST) ; 
    udpSink_rtpout.set("port", 5000) ;

    // rtpL16pay - payload encode raw audio over rtp packets
    Element rtpL16pay = ElementFactory.make("rtpL16pay", "rtpPay") ;
    //  rtp part ends here

    // add all elements into a pipeline 
    pipeline.addMany(source, demuxer, decoder, conv, rtpL16pay, rtpbin, udpSink_rtpout) ;

    // link all elements  
    Element.linkMany(source, demuxer) ;
    Element.linkMany(decoder, conv, rtpL16pay) ;
    // link to rtp 
    logger.info("Linking pads ....") ;
    Element.linkPads(rtpL16pay, "src", rtpbin, "send_rtp_sink_0") ;
    Element.linkPads(rtpbin, "send_rtp_src_0", udpSink_rtpout, "sink") ; 

    demuxer.connect(new PAD_ADDED() {
        public void padAdded(Element element, Pad pad) {
            logger.info("Dynamic pad added, linking demuxer/decoder") ; 
            Pad sinkPad = decoder.getStaticPad("sink") ;
            Element.linkPads(element, pad.getName(), decoder, sinkPad.getName()) ; 
        }
     });

    // set the pipeline to playing state
    logger.info(" pipeline now playing....and ") ;
    pipeline.setState(State.PLAYING) ; 
    logger.info(" Pipeline state is " + pipeline.getState()) ; 

    loop.run() ;
    logger.info(" returned ..stopping playback") ;
    pipeline.setState(State.NULL) ;      
   }
 }

有人能告诉我现在如何使用JAVA添加打开和关闭套接字的方法吗?

您需要以什么方式创建套接字?这是为您的udpsink手动创建的套接字吗?gstreamer使用的,您可以手动创建和设置Hello Benjamin Trent,我正在尝试构建一个RTPproxy服务器,为此,我认为需要自动创建和删除套接字。请你帮我创建一个rtp代理服务器,我真的是一个新手,在里面挣扎了很多。请收听
udpsrc
元素,并发送出去,就像您当前在
udpsink
元素上所做的那样。Gstreamer会自动使用这些元素创建套接字。