Linguagem C – Como transferir dados por ip?

Antes de tudo é preciso assumir que estamos perante uma pergunta que nos conduz inevitavelmente a uma área de alguma complexidade.
Quando me surgiu esta ideia acabei neste endereço ( http://beej.us/guide/bgnet/output/html/multipage/index.html ), onde de facto está tudo muito claro. Parabéns ao autor Brian “Beej Jorgensen” Hall.
Mas imagine que, sem querer atravessar todo o processo de estudo de comunicação de dados em linguagem C, pretende escrever um programa que necessita de trocar pequenas quantidades de informação sem grandes preocupações de segurança?

Proponho um exemplo: “O Jogo do Galo”!

Numa análise simplista, para implementar este jogo em rede basta conseguir trocar dados do tipo “char” que representem as várias situações: ‘x’ para as cruzes; ‘o’ para as bolas; ‘ ‘ para uma célula vazia; e todos os outros caracteres para associar às várias situações de controlo que necessitem.
Sem explorar os aspectos básicos associados à implementação deste jogo, deixo aqui um pequeno programa de exemplo, onde implementei duas funções que tornam possível a comunicação entre dois “hosts” na vossa rede, bastando paro o efeito conhecer o endereço ip que lhes está atribuído.
A função “enviar” faz justiça ao nome escolhido, pois simplesmente lança no meio de transmissão um sinal dirigido ao “ip_receptor” contendo um caracter. O receptor faz com o caracter o que lhe apetecer!
A função “receber” ausculta o meio de transmissão até lhe ser enviado um caracter.
A função “main” é “paisagem”, pois apenas serve para exemplificar a utilização destas duas funções.

Download do código fonte: aqui (Box: sourcecode0004.cpp)
Basta mudarem os endereços ip para o vosso caso e já estão a trocar caracteres.
Espero que isto vos seja útil e fico à espera desse “Jogo do Galo – Versão rede :)”

5 Respostas para “Linguagem C – Como transferir dados por ip?”

  1. Fábio Marks Says:

    Graciano Torrão,
    Fiquei interessado no seu artigo sobre “Como transferir dados por ip”, onde você deixou um exemplo de um “jogo do galo” com linguagem C para download (Box: sourcecode0004.cpp), mas não consegui baixar no site em questão.
    Se você puder me enviar o código fonte ficarei grato. Sou estudante de Mecatrônica e Eng. Elétrica.
    Desde já, agradeço,
    Fábio

  2. Graciano Torrão Says:

    Este assunto resultou de uma experiência que fiz com um grupo de jovens com muito pouca experiência na área da programação.
    Limitei-me a ir ao endereço que forneço no artigo e a “adaptar” duas funções que enviam e recebem dados conhecidos os endereços de ip do emissor e do receptor.
    Os resultados não foram os melhores, pois o assunto é demasiado complexo para ser abordado de ânimo leve, pelo que recomendo mesmo a leitura integral do artigo.
    Quanto ao exemplo que tinha na box não sei se ainda existe … pelos vistos aquele serviço mudou a sua “filosofia” de alojamento grátis.
    Se entretanto o encontar envio por email.
    Felicidades nos estudos.

  3. Junio Says:

    Estou estudando a linguagem C, fiquei muito curioso em visualizar o fonte, pode me enviá-lo, por favor.

    Fraterno abraço,

    Júnio

  4. Wendell Says:

    olá,

    me interessei muito por tal assunto,

    mas o arquivo foi removido,

    pode posta lo denovo?

  5. Graciano Torrão Says:

    Olá,
    Lamento mas já não sei onde tenho este exemplo :(
    Tinha isto no box.net das depois deu trapalhada e agora não sei do código fonte.
    De qualquer das formas limitei-me na altura a ir ao link que indico no início deste post e a adaptar duas funções que lá encontrei.
    No original era possível enviar um sequência de caracteres … eu adaptei para um único caracter … ideal para o efeito que eu pretendia.
    De qualquer das formas para mexer neste assunto a sério vai ser necessário estudar um bocado sobre sockets e só depois partir para as experiências.
    Esta é pelo menos a ideia que tenho do assunto, que confesso nunca dediquei muito tempo ;)


Deixe uma Resposta