Servidor em C via UDP
Publicado por Rafael 20/06/2007
[ Hits: 12.377 ]
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); }
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
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
Realizar overclock no Miyoo Mini (plus ou normal)
Otimização de memória para máquinas modestas
Direcionar uma URL para Outra No Mikrotik (0)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (1)