[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

[Fwd: Re: EP4: Dúvida sobre o Bounded Buffer]



Fiz a mesma besteira de novo. Mania de eGroups, desculpem!

-------- Original Message --------
Subject: Re: EP4: Dúvida sobre o Bounded Buffer
Date: Mon, 02 Jul 2001 00:19:08 -0300
From: Tiago <tminc@uol.com.br>
To: Francisco Reverbel <reverbel at ime.usp.br>
References: <Pine.GSO.4.21.0106281911360.1056-100000@jaca>

 Francisco Reverbel wrote:

> On Thu, 28 Jun 2001, Tiago wrote:
>
> > Francisco Reverbel wrote:
> >
> > > Não, é mais simples que isso (vide acima). Recusar pedidos de conexão é
> > > fácil: basta não chamar socket.accept().
> > >
> > > Reverbel
> >
> > Só que aí o cliente acha que o servidor caiu.
>
> Isso depende do cliente. Um cliente java vai ver uma exceção
>
>    java.net.ConnectException: Connection refused

Verdade. Mas é uma recusa "passiva", não é? Aos olhos do cliente, quem recusou a
conexão foi o host, não necessariamente o servidor. Entre as razões, pode ser
porque o servidor "caiu", FHC decretou apagão, o cliente está tentando conectar
ao host errado (www.microsotf.com), problemas de NAT, mil coisas. Ao passo que
uma mensagem "Erro: servidor ocupado. Tente novamente mais tarde." é garantido
(o que não quer dizer menos frustrante).

> É só o cliente apanhar essa exceção e interpretá-la corretamente.

Acho que concordaremos que interpretá-la corretamente não é simples, né? ; )

> > Não é melhor responder "Server busy"??
>
> Não sei se entendi... O servidor mandaria para o cliente uma mensagem
> "server busy"? Como ele faria isso _sem_ aceitar uma conexão com o
> cliente?
>
> Reverbel

Bom, ele abre a conexão TCP, mas não usa uma das Threads do pool, que
interpretam comandos, etc. Usa a "main" mesmo, responde e fecha.

Eu ia postar aqui um trecho que uma mensagem anterior que supostamente dava como
indesejado esse comportamento (não chamar accept()), mas quando li de novo,
percebi que não é isso o que está escrito.

Meu ep está assim, respondendo "Server Busy". Posso deixá-lo assim?

Tudo de bom!!
Tiago.