Oi Luciano,
talvez isso seja besteira, mas tente criar um servidor
multi-threaded, onde cada conexao retornada pelo accept fosse passada para
uma thread tratar.
Acho que o que estah acontecendo eh que como depois de ter chamado
o accept uma vez voce nao o chama novamente ateh que a socket que ele
retornou seja fechada, pode-se aproveitar da porta 3000 para enviar e
receber informacoes. Na verdade para testar isso voce nao precisa nem de
criar um servidor multi-threaded, faca somente o seguinte:
ServerSocket server = new ServerSocket(3000);
Socket s1 = server.accept();
Socket s2 = server.accept();
System.out.println(s1.getLocalPort());
System.out.println(s2.getLocalPort());
Abra entao dois telnets para a porta 3000 e envie qualquer coisa
para o servidor. Me fale se isso rolou...
Abracos,
Bruno.
On Mon, 14 Aug 2000, lusoujava wrote:
> Caro MPS,
>
> Acho que Vc se equivocou neste ponto. O método getLocalPort
> que estou chamando é o da classe Socket e não da classe
> ServerSocket. A sua explicação parece-me coerente para o método
> de mesmo nome só que da classe ServerSocket.
> De acordo com o javadoc da classe Socket temos a seguinte
> descrição para o método getLocalPort()
> ->"Returns the local port to which this socket is bound."
> ou seja, retorna a porta TCP alocada para este socket.
>
> A minha dúvida é que esta porta não deveria ser a mesma porta
> TCP que o Servidor está "escutando" pois se assim fosse como eu
> iria ter meu servidor e um cliente prestando serviços numa mesma
> porta?? Existe ainda um problema maior se eu tiver vários Socket
> criados a partir de uma chamada a ServerSocket.accept() então
> todos estarão ligados a uma mesma porta visto que getLocalport
> sempre retornará a porta em que o servidor gerador destes sockets
> está "escutando".
>
> De qualquer forma valeu pela dica.
>
> [ ]´s
> Luciano Coelho
>
>
> >
> > Olá Luciano,
> >
> > O valor retornado está correto, pois esse método faz justamente
> isso,
> > retorna o número da porta em que o socket está recebendo
> solicitações.
> >
> > getLocalPort
> > public int getLocalPort()
> >
> > Returns the port on which this socket is listening.
> >
> >
> > Mps
> >
> >
> >
> >
> >
> > "lusoujava"
> > <lusoujava@bo Para:
> [EMAIL PROTECTED]
> > l.com.br> cc:
> > Assunto: [java-list] Retorno do
> > 10/08/2000 getLocalPort
> > 12:36
> > Responder a
> > java-list
> >
> >
> >
> >
> >
> > Caros colegas do soujava,
> >
> > Vamos considerar o seguinte trecho de código:
> >
> > ServerSocket srv = new ServerSocket(3000);
> >
> > Socket cln = srv.accept();
> >
> > System.out.println(cln.getLocalPort());
> >
> > Minha dúvida é a seguinte: o valor a ser impresso deveria ser algo
> > diferente de 3000, ou seja, qualquer outra porta desde que
> diferente
> > da porta de listen do meu servidor. Mas aqui está justamente o
> > problema.... O valor retornado é justamente 3000.
> >
> > Alguém saberia o motivo e assim sendo poderia me dar alguma
> > explicação?
> >
> > [ ]´s
> > Luciano Coelho
> >
> >
> >
> >
> _________________________________________________________
> _________________
> > BOL dá 15 viagens GRÁTIS para as Olimpíadas!
> > Desafio BOLimpíadas. Inscreva-se já!
> http://desafio.bol.com.br/bolimpiadas
> >
> >
> >
> >
> >
> > ------------------------------ 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]
> >
> -----------------------------------------------------------------
> --------
> >
> >
> >
> >
> >
> >
> > ------------------------------ 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]
> >
> -----------------------------------------------------------------
> --------
> >
> >
>
>
> __________________________________________________________________________
> BOL dá 15 viagens GRÁTIS para as Olimpíadas!
> Desafio BOLimpíadas. Inscreva-se já! http://desafio.bol.com.br/bolimpiadas
>
>
>
>
>
> ------------------------------ 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]
> -------------------------------------------------------------------------
>
______________________________________________________________
Bruno Diniz de Paula
[EMAIL PROTECTED] - UFMG
"Coracoes ao alto e pes no chao."
"A verdadeira experiencia com Deus nao nos faz
fugir da realidade, mas nos da forcas para
enfrenta-la e transforma-la."
Pe. Zeca
------------------------------ 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]
-------------------------------------------------------------------------