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 :)”

Anúncios

5 thoughts on “Linguagem C – Como transferir dados por ip?

  1. 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. 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. 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

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s