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] 
-------------------------------------------------------------------------

Responder a