Servidor em C via UDP
Publicado por Rafael 20/06/2007
[ Hits: 12.158 ]
Homepage: nenhum
Um servidor em C que utiliza o protocolo UDP, recebe e envia mensagens...
Olhe também o cliente! De novo a tentativa é ser o mais didático possível.
Logo, este é um exemplo também bem simples e comentado.
Para compilar: gcc servidor.c -o S
#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 cliente, servidor; int tam_cliente, meuSocket,enviei=0; // MTU padrão pela IETF char buffer[576]; meuSocket=socket(PF_INET,SOCK_DGRAM,0); servidor.sin_family=AF_INET; servidor.sin_port=htons(20000); servidor.sin_addr.s_addr=htonl(INADDR_ANY); esvazia(buffer,576); bind(meuSocket,(struct sockaddr*)&servidor,sizeof(struct sockaddr_in)); while(1){ printf("*** Servidor de Mensagens ***\n"); tam_cliente=sizeof(struct sockaddr_in); recvfrom(meuSocket,buffer,576,MSG_WAITALL,(struct sockaddr*)&cliente,&tam_cliente); printf("Recebi:%s de <endereço:%s> <porta:%d>\n",buffer,inet_ntoa(cliente.sin_addr),ntohs(cliente.sin_port)); int enviei=sendto(meuSocket,"ACK!",strlen("ACK!"),0,(struct sockaddr*)&cliente,sizeof(struct sockaddr_in)); if (enviei>=0) printf("Envio de ACK!\n"); else{ error("sendto"); printf("Envio de falhou!\n"); } esvazia(buffer,576); } close(meuSocket); }
Exemplo de sockets: um client e um server bem simples
Usando sockets para monitorar servidores
Compartilhando a tela do Computador no Celular via Deskreen
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Preciso resolver um erro de DPKG (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (2)
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
[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