Cliente em C via UDP
Publicado por Rafael 20/06/2007
[ Hits: 13.173 ]
Homepage: nenhum
Um cliente C que utiliza o protocolo UDP, recebe e envia mensagens...
Eu já encontrei alguns do tipo na internet, mas nunca que realize as duas coisas ao mesmo tempo e que seja explicativo.
Logo este é um exemplo bem simples e comentado, sem nem sequer usar DNS.
Para compilar: gcc cliente.c -o C
#include <stdio.h> #include <sys/socket.h> #include <netdb.h> #include <string.h> void esvazia(char vetor[],int tam){ int i; for(i=0;i<tam;i++){ vetor[i]='{FONTE}'; } } int main(){ struct sockaddr_in servidor,cliente; int tam_cliente, meuSocket; char envia[576]; char recebe[576]; meuSocket=socket(PF_INET,SOCK_DGRAM,0); servidor.sin_family=AF_INET; // familia de endereços servidor.sin_port=htons(20000); // porta // para usar um ip qualquer use inet_addr("10.10.10.10"); ao invés de htonl(INADDR_ANY) servidor.sin_addr.s_addr=htonl(INADDR_ANY); esvazia(envia,576); esvazia(recebe,576); while(1){ printf("\n*** Bem vindo ao cliente ***\n"); printf("Escreva uma mensagem:\n"); fgets(envia,576,stdin); sendto(meuSocket,envia,strlen(envia),0,(struct sockaddr*)&servidor,sizeof(struct sockaddr_in)); tam_cliente=sizeof(struct sockaddr_in); recvfrom(meuSocket,recebe,576,MSG_WAITALL,(struct sockaddr*)&cliente,&tam_cliente); printf("Recebi:%s",recebe); esvazia(envia,576); esvazia(recebe,576); } close(meuSocket); }
Simulação de controle de fluxo usando sockets
Robo HTTP usando socket e código multiplataforma
Atenção a quem posta conteúdo de dicas, scripts e tal (6)
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
O mínimo que você precisa saber sobre o terminal (parte 2)
O mínimo que você precisa saber sobre o terminal (parte 1)
Como iniciar uma máquina virtual do VirtualBox automaticamente no boot do LUbuntu 18 LTS
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como deixar as abas do Firefox mais fininhas
Mudar o gerenciador de login (GDM para SDDM)
"Tentando" fazer com que programas rodem no Wayland e no X11
Formatar NVM Express 1.3 de forma segura por completo (3)
Problema ao usar monitor externo via USB-C/Display... no Ubuntu 24 (1)
Porblema com MergeList [RESOLVIDO] (10)
Melhor hospedagem em nuvem para projetos Laravel com baixo custo? [RES... (7)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta