Re: [python-brasil] Aplicação cliente/servidor aceitando dados apenas na primeira vez!

248 views
Skip to first unread message

Junior Phanter

unread,
Oct 4, 2017, 6:19:44 PM10/4/17
to python...@googlegroups.com
Eu acho que o problema é que vc abre o socket fora do laço, envia a mensagem e vc fecha a conexão (s.close())... Quando vai tentar mandar novamente a conexao está fechada... Tente colocar a abertura da conexão dentro do while ou fechar a conexão fora do while...

Em 04/10/2017 15:15, "Arthur" <arthur.a...@gmail.com> escreveu:

Olá, estou tentando construir um sistema de notificações bem simples em Python, como base, peguei um chat bem simples que encontrei no Stack Overflow, funciona da seguinte maneira:


1) O servidor envia uma mensagem (Por exemplo: Temperatura aumentando.)
2) Todos os clientes recebem esta mesma mensagem: Temperatura aumentando.


O Problema:
Eu só consigo mandar informações apenas uma vez.

Abaixo vocês podem conferir o código e o console:


























Como você podem ver, ao enviar a primeira mensagem ("Primeira mensagem"), ocorre tudo bem, a janela ao lado recebe a mensagem, mas ao tentar a segunda, o erro na direita acontece.

Alguém saberia como posso resolver? (Aceitar as mensagens seguintes).

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Arthur

unread,
Oct 5, 2017, 10:52:49 AM10/5/17
to Python Brasil
Olá Junior, coloquei tudo dentro do while e realmente, agora consigo continuar trocando mensagens entre o cliente e o servidor continuamente, muito obrigado pela ajuda!

Você saberia me dizer como posso fazer com que o servidor não necessite de uma resposta do cliente e como posso aceitar mais de uma conexão?
No momento,a conexão não parece ser contínua, toda vez que uma mensagem é enviada do servidor para o cliente, o cliente precisa responder para o servidor poder enviar novamente, estou tentando fazer com que isto não seja necessário.
O objetivo era fazer com que o servidor enviasse uma notificação e todos os clientes recebessem.

Obrigado pela ajuda!

Arthur

unread,
Oct 5, 2017, 11:47:10 AM10/5/17
to Python Brasil
Atualizando: Consegui fazer a conexão ser contínua e sem a necessidade de esperar a troca de mensagens, só não descobri ainda como fazer o servidor aceitar mais de uma conexão.

Erle Carrara

unread,
Oct 5, 2017, 3:47:18 PM10/5/17
to Python Brasil
Oi Arthur,

Para o servidor aceitar mais de uma conexão **ao mesmo tempo** você lançar várias threads que lidam com os clientes conectados enquanto a thread principal fica sempre esperando por um novo cliente.


Abraço.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Erle Carrara

Arthur

unread,
Oct 14, 2017, 3:24:37 PM10/14/17
to Python Brasil
Ola Erle, obrigado pela dica, estou dando uma estudada!


Em quinta-feira, 5 de outubro de 2017 16:47:18 UTC-3, Erle Carrara escreveu:
Oi Arthur,

Para o servidor aceitar mais de uma conexão **ao mesmo tempo** você lançar várias threads que lidam com os clientes conectados enquanto a thread principal fica sempre esperando por um novo cliente.


Abraço.
Em 5 de outubro de 2017 12:47, Arthur <arthur.a...@gmail.com> escreveu:
Atualizando: Consegui fazer a conexão ser contínua e sem a necessidade de esperar a troca de mensagens, só não descobri ainda como fazer o servidor aceitar mais de uma conexão.


Em quinta-feira, 5 de outubro de 2017 11:52:49 UTC-3, Arthur escreveu:
Olá Junior, coloquei tudo dentro do while e realmente, agora consigo continuar trocando mensagens entre o cliente e o servidor continuamente, muito obrigado pela ajuda!

Você saberia me dizer como posso fazer com que o servidor não necessite de uma resposta do cliente e como posso aceitar mais de uma conexão?
No momento,a conexão não parece ser contínua, toda vez que uma mensagem é enviada do servidor para o cliente, o cliente precisa responder para o servidor poder enviar novamente, estou tentando fazer com que isto não seja necessário.
O objetivo era fazer com que o servidor enviasse uma notificação e todos os clientes recebessem.

Obrigado pela ajuda!

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
Erle Carrara
Reply all
Reply to author
Forward
0 new messages