Um chute:
Os pacotes com o IP da Intranet (192.168.1.1) não estão passando pelo
firewall. Jah o IP válido é roteado pelo Firewall que deve estar filtrando
pacotes UDP.
------------------------------
Sergio Oliveira Jr.
Sun Certified Java Programmer
Desenvolvedor e Consultor Java
------------------------------
>From: "R.A.Harari" <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: <[EMAIL PROTECTED]>
>Subject: [java-list] JMF - Java Media Framework help!!!!
>Date: Thu, 2 Aug 2001 18:42:52 -0300
>
>Ola Developers,
>
>Desenvolvi um aplicativo utilizando o JMF 2.1.1 onde um servidor controla
>os players de uma ou mais sessões e é o responsável por controlar
>transmissões multi-unicast.
>Esta tudo funcionando mas quando o servidor é instalado no ambiente de
>produção, em um linux caldera que está atras de um firewall, não consigo
>fazer um bind de streams provenientes da Internet, ou seja; o servidor
>responde por 2 IPs (ip1 e ip2, por exemplo), onde o ip1 é da intranet e o
>ip2 da internet. O fato é que os datagrams packets provenientes de uma
>transmissão estão chegando ao servidor corretamente ( verifiquei com um
>aplicativo teste usando DatagramSocket ) mas o servidor não consegue
>efetuar o bind. Não ocorre erro mas também o stream não é capturado??!
>A seguir um pedaço do código utilizado para inicializar a sessão e capturar
>os streams:
>
>
> Object dataSync = new Object();
> ...
> void StartServer() {
> SessionAddress localAddr;
> SessionAddress destAddr;
> ...
> ipAddr = InetAddress.getByName(objSessao.address); //
>objSessao.address é um endereço IP
> localAddr= new SessionAddress(InetAddress.getLocalHost(),
>objSessao.port); // objSessao.port=20000
> destAddr = new SessionAddress(ipAddr,objSessao.port);
> objManager[i] = (RTPManager) RTPManager.newInstance();
> objManager[i].initialize(localAddr);
> BufferControl bc =
>(BufferControl)objManager[i].getControl("javax.media.control.BufferControl");
> if (bc != null) bc.setBufferLength(350);
> objManager[i].addTarget(destAddr);
> ...
> System.out.println("Etapa 1");
> try{
> synchronized (dataSync) {
> while (!dataReceived) {
> if (!dataReceived) System.out.print(".");
> dataSync.wait(1000);
> }
> }
> } catch (Exception e) {}
> System.out.println("Etapa 2");
> ....
> }
>
>onde a variavel dataReceived será setada no "update" quando um
>"NewReceiveStreamEvent" ocorrer:
>
> public synchronized void update( ReceiveStreamEvent evt) {
> ...
> if (evt instanceof NewReceiveStreamEvent) {
> ....
> synchronized (dataSync) {
> dataReceived = true;
> dataSync.notifyAll();
> }
>
> }
> }
>
>
>Quando envio um stream capturado de uma webcam para o ip1(intranet) o
>evento NewReceiveStreamEvent é disparado mas quando envio para o
>ip2(internet) não acontece nada e o programa fica parado no while
>(!dataReceived). Alguem sabe como resolver?
>
>[]s
>
>Ricardo A Harari
>[EMAIL PROTECTED]
>
>
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------