You are on page 1of 3

Apostila de Sockets PARTE 1 Como funciona as conexes

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 contedo encontrado nesta apostila. Pra comeo de conversa quero falar um pouquinho sobre mim: Meu nome Joo Nelson Lima trabalho com Delphi em uma empresa de automao comercial. Tenho 20 anos e moro atualmente em Braslia. Meu e-mail jnelson3@ig.com.br. E como voc enfrento os mesmo problemas para encontrar conteudos avanados 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 sugestes so 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 no precissa desesperar os componentes esto presente sim. Mas por padro no instalados a voc vai ter que encontrar a Bpl e insata-l Pronto! Podemos partir pra pratica.... Ento estamos esperando o que? Vamos fazer o primeiro programa em rede =) J ta com o Delphi aberto? T esperando o que ento? .... 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 so 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 conexes. Te quem? Do TclientSocket! Sim sim! Sempre que voc quiser fazer uma comunicao 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 ento 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 no 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? Ento como eu fao 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. Talvez voc esteja se perguntando os que so essas mensagens to 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 diferena bsica que o Cliente simplesmente manda a mensagem e sempre quem recebe o servidor. J com o servidor preciso indicar qual a conexo. Lembra do tal (A,B e C). Pois . Essas conexes gerenciador pelo componente como uma pilha. Assim o:

Entra o primeiro cliente! Temos ele na conexo 0 ZERO Entra o SEGUNDO cliente e temos ele na posio 1 UM Entra o TERCEIRO e temos ele na posio 2 DOIS

At a beleza. Muito obvio esse negocio! Mas suponha agora que o SEGUNDO que estava na posio 1 caiu! Saiu! Desconectou-se por algum motivo. Bom agora vamos ter: - Primeiro Cliente permanece n posio 0 ZERO - Agora o TERCEIRO caiu um degrau e vai para a posio em baixo. Neste caso a posio 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 conexo que no existe certamente vai dar pau e se voc no coordenar estas conexes 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 possvel de uma olhada em Ponteiro e na Classe Tlist eles vo ser o corao do nosso gerenciador de Conexes. E vamos comear de fato a programao com Sockets e comear a Construir um Chat. Abraos e at a semana que vem.

adicione ao formulrio um componente TserverSocket. Otimo! Voc me pergunta pra que? ento te respondo: Isso vai fazer com que sua aplicao abra um porta na sua maquina. Qual quer maquina? Sim! Isso te possibilita a comunicar-se com um inteiro de clientes. Vamos configurar ento esse componentes. Na propriedade Port coloque a porta que voc quiser. Claro no vamos colocar nem uma porta padro. Vamos por ento 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: Voc est fazendo um programa em rede, mas caso no 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 no 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 aplicao 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 Buto servira pra ativar e desativar o Cliente. Vamos ento Codifigar isso:

You might also like