Вы находитесь на странице: 1из 3

Apostila de Sockets PARTE 3 o projeto

Na apostila 2... Caro leitor na apostila dois demos introduo ao corao do sistema quanto a sua parte de sockets. O tal GC foi util pra muita gente pelo retorno que obtive de algumas pessoas. Mais uma vez muito obrigado por e espero que a apostila 3 seja to ou mais util que as anteriores.

Tratando os erros Bem galera muitos erros podem ocorrer quando se tratamos de sockets. As vezes dificil saber qual foi o erro e tal. Bem no sei decorado mas os erros tem sempre um codigo. Tipo 10061, 10050 ou algo mais ou menos assim. =) Normalmente os erros de sockets no so to graves. No iro travar a maquina ou coisa mais seria. Mas um erro feio que aparece. Vou ensinar como fao super simples e eficiente. Voc j percebeu que tem um evento onError nos componentes? Pois . Sempre que da um erro ele passa ali. H tambem um variavel que informa o codigo do erro. ErroCode : integer; eu sempre coloco um case dessa variavel e vou tratando os erros que aparecer; Por exemplo: Case ErrorCode of 10061: Begin Application.MessageBox(No foi possivel conectar no servidor, Pchar(Application.Title),16); End; End; ErrorCode := 0; Esse ErrorCode := 0 pra evitar que a menssagem do componente aparea; =) Simples n? a medida que iremos motar nosso projeto iremos tratar os erros por completo.

Nosso projeto Bem fiquei pensando em o que poderia fazer para que agete pudesse colocar em pratica nossos conhecimentos adiquiridos aqui. A ideia inicial era um chat mas percebi que o tal Programainha pra LanHouse que o bicho. Ento iremos fazer um. Explicando o projeto Na verdade vo ser dois executaveis. O Cliente e o Servidor. O objetivo desse sistema liberar a maquina durante um tempo pre determinado. No servidor iro ficar todas as maquinas logadas com as informaes de tempo restante, ou livre. No cliente ele vai ter duas funes basicas: Liberar a

maquina e bloquear a maquina. Esse Bloqueio sera simples surgira um Form do tamanho da tela sem borda sem nada q tapa a tela e so sai com o desbloqueio da maquina. Delphi ai vou eu... Acredito que voc um programador capaz de criar e inserir os codigos apresentados na parte 2 dessa apostila. Ento isso q iremos fazer. Montarei um protocolo simples q irei sequir. - No cliente Envia #LOGANDO# + NOMEDAMAQUINA + #13 Recebe #BLOC# +#13 Recebe #DESBLOC# +TEMPO+#13 - No Servidor Envia #BLOC# + #13 Envia #DESBLOC# + TEMPO + #13 Recebe #LOGANDO# + NOMEDAMAQUINA + 13# Agora vamos criar funes dentro do cliente para tratar isso. Observou que todos os comandos terminaram com #13 ? Isso para indicar vim te comando. No nosso caso no iremos transmitir textos ento um terminador simples tipo #13 mais q suficiente. Os paramentos sero passados separados por espaos. Neste caso no iremos precissar mas j prevendo o futuro colocaremos a variavel NOMEDAMAQUINA para dentro da funo HttpEncode() isso porque caso a maquina tiver um nome composto tipo Nome da maquina e do outro lado iremos colocar voltar a string original com a funo HttpDecode(); Acho que j da pra brincar. Infelizmente no tive tempo de entregar os codigos e anexalos aqui. Mas logo em breve darei um jeito de enviar.

Alem dos sockets Pra quem usa o Delphi 6 ou superiar deve ter notado que apareceram componentes INDY com a mesma finalidade dos Sockets com um pequena vantagem. So compativeis com o Kylix. Se voc usa o Delphi 7 percebeu que os componentes sumiram, na verdade foram trocados, mas ainda sim esto l so no so instalados como padro. Mas o que eu queria mesmo dizer que os componentes Indy realmente so muito boms. claro que os sockets voc pode trabalhar beleza desse jeito, mas a grande vantagem dos Indy est na verso 9 que t no Delphi 7 se voc tiver o Delphi 4,5,6 ou 7 pode atualizar os componentes Indy. Ah no delphi 6 no consegui instalar e no 7 j vem. Visite o site deles www.nevrona.com pegue os componentes pq vale a pena. Boa sorte e tudo de bom, Joo Nelson Lima