Escrevi esse texto porque muitas pessoas me perguntam como aprender esse assunto. Como sockets é um tópico extenso, e necessaria toda uma introduçao e materiais de referencia.
Aqui vou dar uma explicaçao simples, recomendar muitos materiais de leitura e propor exercicios para aplicar os conhecimentos. Tambem deixo codigos-fonte para exemplificar o conteudo. Qualquer duvida estarei pronto para ajudar.
Como o texto e longo, aqui vou deixar a introduçao e passar o link pro artigo completo no final do post.
Sockets são ótimas ferramentas para qualquer programador, independentemente da linguagem. Eles basicamente permitem que programas em diferentes computadores troquem informações. Aqui vou mostrar o caminho que percorri para aprender a programar usando sockets.
Minha abordagem será em C e a API que vou mostrar é baseada em UNIX. Para quem programa com outras linguagens ou usa Windows, existem vários tutoriais ótimos na internet. Ótimas referências são Python, Java e a API winsock.
Aprender sockets não é tão trivial. São necessários conceitos de redes protocolos, processos, input não-bloqueante, file descriptors, UNIX... Portanto, recomendo tentar aprender com objetivos sólidos em mente. Por exemplo, criar um programa de chat, servidor web ou um jogo online.
Além da teoria, vou definir dois "deveres de casa". São dois programas que você deve tentar fazer para provar que aprendeu a usar sockets. No final, vocẽ deve ter um conhecimento sólido e prático de como usar sockets nos seus programas.
Introdução
Aqui vou passar superficialmente sobre alguns conceitos básicos. A explicação é simples e rápida porque os detalhes estarão nos materiais de referência.
Uma analogia que é repetida desde sempre é a idéia do telefone. Sockets são como telefones: apenas pontos de comunicação. Eles ligam dois computadores e permitem que se troque dados. 'Abrir' um socket significa ligar para alguém. Para isso você precisa do número de telefone (no caso dos computadores, do endereço IP - Internet Protocol).
Quando falamos no telefone, nos comunicamos através de uma língua que ambos entendem. Para os computadores enviarem e receberem dados, é definido um protocolo. Assim eles sabem de onde veio a informação, qual o tamanho da informação, data de envio e assim vai. O protocolo mais usado na internet é o HTTP (Hypertext Transfer Protocol).
Quando você fala no telefone, não precisa se preocupar sobre como sua voz é convertida para sinais eletrônicos ou como ela vai chegar até o telefone da pessoa que você está ligando. Isso tudo é feito pelas empresas telefônicas. Do mesmo jeito, a API de sockets cuida de todos esses problemas de baixo nível por você. Tudo o que você precisa fazer é usar uma sequência de funções e fornecer os dados para a comunicação acontecer.
Question
alex.dantas
Escrevi esse texto porque muitas pessoas me perguntam como aprender esse assunto. Como sockets é um tópico extenso, e necessaria toda uma introduçao e materiais de referencia.
Aqui vou dar uma explicaçao simples, recomendar muitos materiais de leitura e propor exercicios para aplicar os conhecimentos. Tambem deixo codigos-fonte para exemplificar o conteudo. Qualquer duvida estarei pronto para ajudar.
Como o texto e longo, aqui vou deixar a introduçao e passar o link pro artigo completo no final do post.
Veja o texto completo aqui
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.