[Cascavel-pm] client/servidor
Luis Motta Campos
luismottacampos em yahoo.co.uk
Terça Janeiro 22 11:12:39 PST 2008
Ricardo Stock wrote:
> Bom dia a todos da lista....
>
> Gente, estou começando a desenvolver uma aplicação cliente/servidor, a
> primeira que estou fazendo :-) em plataforma win32, porém estou com uma
> duvida. O servidor parece estar rodando ok, pois o executo e o mesmo
> fica aguardando a conexão.
Lamento, mas acho que você não está prestando atenção. O teu servidor
"morre" nos primeiros 0.06 segundos de execução (leia detalhes completos
no anexo).
> Estou iniciando o desenvolvimento de um programa que fara determinadas
> funções dependendo do comando recebido, mas isto é coisa para o futuro.
Eu sinto cheiro de buraco de segurança grande o bastante para passar a
torcida do flamengo, paramentada para a final do campeonato, com
bandeiras e tudo. Recomendo que você não faça isso, ou, se fizer, não
diga que eu não te avisei. ;)
> O erro s da, ao que parece quando o cliente tenta enviar a mensagem de
> teste, me da a mensagem que nao foi possivel chamar o metodo send, ai, a
> duvida, pois, não sei o que fazer....
>
> segue o código abaixo. Caso alguma sugestão, sera de bom agrado
>
[código horrível e sem formatação cortado daqui]
Que vergonha!
Você nem mesmo testou esta coisa!
O teu programa de servidor não funciona.
Os logs em anexo são a minha sessão de debugging sobre o teu código de
servidor.
Teu problema pode ser dividido em partes:
1. Você não sabe teoria (bom, ninguém nasce sabendo). Leia "Redes de
Computadores" do Andrew Tanenbaum (ISBN 8535211853), antes de tentar
escrever programas "cliente-servidor". Eu garanto que você não vai se
arrepender.
2. Você não sabe usar o CPAN: Procure por Net::Daemon, ele resolve 60%
dos seus problemas de programação. Depois, você vai precisar escrever um
cliente, mas isso é mais simples.
3. "use strict" e "use warnings" vão mostrar os erros do seu código mais
facilmente. Não deixe nunca de usar estes pragmas da linguagem perl no
início dos seus programas.
4. Não reinvente a roda. Se você não tem um bom motivo para escrever um
cliente e um servidor você mesmo, não faça isso. "Curiosidade" e
"oportunidade de aprendizado" ou "projeto pessoal" são boas desculpas,
contanto que o código (simplista, cagado) que sair das suas primeiras
100 tentativas não chegue nem perto de um sistema sério (seja comercial
ou não).
E, se você prometer ignorar o meu pequeno acesso de megalomania, eu
implementei um servidor HTTP e postei o código no meu blog. Ele pode te
dar idéias interessantes sobre como transmitir dados simples
(possivelmente codificados usando o módulo "YAML"?) e que podem ser
utilizados com os clientes HTTP que o módulo LWP já implementa. A URL é
esta aqui:
http://spaansefilosoof.blogspot.com/2007/05/eu-sou-o-maior-do-mundo.html
Por último, para você não esquecer: TESTE SEUS PROGRAMAS ANTES DE
PERGUNTAR. Aqui, apenas se posta código sem testar se você está
respondendo para alguém (e, neste caso, a responsabilidade é da pessoa
que lê a resposta). Se você faz perguntas, por favor, teste.
Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome : debug.log
Tipo : text/x-log
Tam : 1824 bytes
Descr.: não disponível
Url : http://mail.pm.org/pipermail/cascavel-pm/attachments/20080122/68997afb/attachment-0001.bin
Mais detalhes sobre a lista de discussão Cascavel-pm