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