Cliente em C via UDP
Publicado por Rafael 20/06/2007
[ Hits: 13.446 ]
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); }
Portscan Simples Usando Sockets em C
Simples servidor http com concorrência feito em C
Funções básicas para conexão OpenSSL em C
Kernel ganha novos linters Rust e distros avançam com recursos de IA
Firewire resiste, Bcachefs sai: destaques Linux do dia
Kernel 6.18 em foco, betas fervilhando e avanços em IA no Linux
O que é o THP na configuração de RAM do Linux e quando desabilitá-lo
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Como instalar Counter-Strike 1.6? (5)
intervenção politica pode interver no Fedora Linux [RESOLVIDO] (14)
Como colocar atalho para uma pasta na área de trabalho do Ubuntu 24.04... (0)