Cliente em C via UDP
Publicado por Rafael 20/06/2007
[ Hits: 13.415 ]
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); }
Calcular Broadcast e IPs disponíveis
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
A escola é altamente ineficiente e ineficaz! (10)
Software livre - será que eu estou tão errado assim? (5)