Apostila de Sockets - Parte 1

3
Apostila de Sockets – PARTE 1 Como funciona as conexões Quem sou eu Bom, talvez você já tenha rodado bastante em busca de algo sobre sockets no Delphi, e acho que você vai gostar bastante do conteúdo encontrado nesta apostila. Pra começo de conversa quero falar um pouquinho sobre mim: Meu nome é João Nelson Lima trabalho com Delphi em uma empresa de automação comercial. Tenho 20 anos e moro atualmente em Brasília. Meu e-mail é [email protected] . E como você enfrento os mesmo problemas para encontrar conteudos avançados de Delphi. Por isso resolvi passar meu conhecimentos para os interessados. E por favor se alguem for mudar publicar ou me avisa meu e-mail tá bem aê em ciminha =) Duvidas e sugestões são bem vindas. Por fim gostaria de desejar a você caro leitor uma excelente leitura e um aprendizado útil e empolgante. Agora vamos direto ao Assunto De cara gostaria de avisar que quem usa o Delphi 7 não precissa desesperar os componentes estão presente sim. Mas por padrão não instalados aê você vai ter que encontrar a Bpl e insata-lá Pronto! Podemos partir pra pratica.... Então estamos esperando o que? Vamos fazer o primeiro programa em rede =) Já ta com o Delphi aberto? Tá esperando o que então? .... bom com o Delphi aberto vamos direto para a paleta INTERNET e vamos nos conter em dois componente o TclientSocket e o TserverSocket esses componentes são super poderosos. Vamos entender um pouco como eles funcionam. O TserverSocket – Este componte como o nome já diz é o SERVIDOR. Ele será responsavel por receber as conexões. Te quem? Do TclientSocket! Sim sim! Sempre que você quiser fazer uma comunicação usara no minimio um Server e um Client (Vamos passar a chama-los assim OK?) Um outro detalhe super importante é que SEMPRE um Client conecta em um Server. Imagine isso: A bolona é o servidor e o quadradinho é o cliente. Isso é muito simples então vamos complicar um pouco: A B

Transcript of Apostila de Sockets - Parte 1

Page 1: Apostila de Sockets - Parte 1

Apostila de Sockets – PARTE 1 Como funciona as conexões

Quem sou euBom, talvez você já tenha rodado bastante em busca de algo sobre sockets no

Delphi, e acho que você vai gostar bastante do conteúdo encontrado nesta apostila. Pra começo de conversa quero falar um pouquinho sobre mim: Meu nome é João Nelson Lima trabalho com Delphi em uma empresa de automação comercial. Tenho 20 anos e moro atualmente em Brasília. Meu e-mail é [email protected]. E como você enfrento os mesmo problemas para encontrar conteudos avançados de Delphi. Por isso resolvi passar meu conhecimentos para os interessados. E por favor se alguem for mudar publicar ou me avisa meu e-mail tá bem aê em ciminha =) Duvidas e sugestões são bem vindas. Por fim gostaria de desejar a você caro leitor uma excelente leitura e um aprendizado útil e empolgante.

Agora vamos direto ao Assunto

De cara gostaria de avisar que quem usa o Delphi 7 não precissa desesperar os componentes estão presente sim. Mas por padrão não instalados aê você vai ter que encontrar a Bpl e insata-lá

Pronto! Podemos partir pra pratica.... Então estamos esperando o que? Vamos fazer o primeiro programa em rede =) Já ta com o Delphi aberto? Tá esperando o que então? .... bom com o Delphi aberto vamos direto para a paleta INTERNET e vamos nos conter em dois componente o TclientSocket e o TserverSocket esses componentes são super poderosos. Vamos entender um pouco como eles funcionam.

O TserverSocket – Este componte como o nome já diz é o SERVIDOR. Ele será responsavel por receber as conexões. Te quem? Do TclientSocket! Sim sim! Sempre que você quiser fazer uma comunicação usara no minimio um Server e um Client (Vamos passar a chama-los assim OK?) Um outro detalhe super importante é que SEMPRE um Client conecta em um Server. Imagine isso:

A bolona é o servidor e o quadradinho é o cliente. Isso é muito simples então vamos complicar um pouco:

A B S C

Beleza agora temos 3 (A,B e C)clientes e um servidor (S) e você vai me perguntar como A vai falar com B se A não está ligado em B? por exemplo. Pense um pouco...... A fala com S que por sua vez fala B logo sempre que A quer falar com B ele manda uma mensagem pra S e S manda a mensagem pra B. E quem vai fazer tudo isso é VOCÊ CARO PROGRAMADOR!!! Tá feliz? Então como eu faço isso? Simples mas antes quero falar 3 linhas sobre o TclientSocket

TclientSocket – Este componente é super simples. Você vai ter o trabalho de conectar e mandar mensagem e tratar o que recebe. Você percebera que todo segredo da coisa está no TserverSocket mesmo.

Page 2: Apostila de Sockets - Parte 1

Talvez você esteja se perguntando os que são essas mensagens tão faladas? Bom temos 3 maneiras de enviar mensagem e duas de receber. Vamos ficar somente com a maneira de mandar texto.(STRING) =)

O comando é SendText(S : String); e pra receber é no evento OnRead que existe em ambos os componentes. Um diferença básica é que o Cliente simplesmente manda a mensagem e sempre quem recebe é o servidor. Já com o servidor é preciso indicar qual é a conexão. Lembra do tal (A,B e C). Pois é. Essas conexões é gerenciador pelo componente como uma pilha. Assim o:

Entra o primeiro cliente!

- Temos ele na conexão 0 – ZERO- Entra o SEGUNDO cliente e temos ele na posição 1 UM- Entra o TERCEIRO e temos ele na posição 2 DOIS

Até aê beleza. Muito obvio esse negocio! Mas suponha agora que o SEGUNDO que estava na posição 1 caiu! Saiu! Desconectou-se por algum motivo. Bom agora vamos ter:

- Primeiro Cliente permanece ná posição 0 ZERO- Agora o TERCEIRO “caiu” um degrau e vai para a posição em baixo. Neste

caso a posição 1 UM

Entendeu isso? E vai ser sempre assim. Se o carinha lá que caiu entrar de novo ele vai pro final da fila. E assim vai. Se você tentar mandar mensagem para uma conexão que não existe certamente vai dar pau e se você não coordenar estas conexões de forma eficiente provavelmente uma mensagem que ia pra B pode ira pra A Sei lá. Bom este assunto é bastante extenso. Gostaria de pedir a todos Desculpas pela demora desta apostila. Essa é a Primeira parte. Agora você já me conhece. Semana que vem mando a parte dois. Espero que tenha esclarecido algo. Se for possível de uma olhada em Ponteiro e na Classe Tlist eles vão ser o coração do nosso gerenciador de Conexões. E vamos começar de fato a programação com Sockets e começar a Construir um Chat. Abraços e até a semana que vem.

adicione ao formulário um componente TserverSocket. Otimo! Você me pergunta “pra que?” então te respondo: Isso vai fazer com que sua aplicação abra um porta na sua maquina. “Qual quer maquina?” –Sim! Isso te possibilita a comunicar-se com um inteiro de clientes. Vamos configurar então esse componentes. Na propriedade Port coloque a porta que você quiser. Claro não vamos colocar nem uma porta padrão. Vamos por então 5127 “Porque?” tem um sgnificado especial =) Você vai ficar impressionado se eu te falar que acabou? eu tambem ficaria, ainda falta ativar o servidor, Mas isso é muito facil, coloque um Tbutton e no evento onClick digite: ServerSocket1.Open; Agora você acabou de Abrir a porta 5127 Agora tenho que parar e dar algumas dicas:

Page 3: Apostila de Sockets - Parte 1

Você está fazendo um programa em rede, mas caso não tenha rede vamos usar o IP localhost que é o bom e velho conhecido 127.0.0.1 Esse é o ip da sua maquina mesmo que ela não tenha se quer uma placa de rede.

Com já criamos um Servidor em menos de 5 minutos você me pergunta: “E agora?” Agora meu caro companheiro vamos fazer o Cliente. Crie uma outra aplicação e coloque um Tedit e um Tbutton e claro o TclientSocket. No edit digitaremos o IP da maquina servidora, no caso a nossa que como já falei tem o IP local 127.0.0.1. Maravilha! O Butão servira pra ativar e desativar o Cliente. Vamos então Codifigar isso: