Pular para o conteúdo

Cliente em C via UDP

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
Rafael rafastv
Hits: 13.659 Categoria: C/C++ Subcategoria: Rede
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

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
Download cliente.c Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

#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]='\0';
   }
}

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);
}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

whateveryouwant.c

Portscan Simples Usando Sockets em C

Fractal

Exemplo Básico de Sockets em C

Ruby

#1 Comentário enviado por rafastv em 20/06/2007 - 16:06h
[ATENÇÃO CORREÇÂO] substitua linha vetor[i]='
#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]='\0';
   }
}

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);
}
'; por vetor[i]='/ 0'; sem espaços
[ATENÇÃO CORREÇÂO]

Contribuir com comentário

Entre na sua conta para comentar.