Código fuente de subcontratación Cudp
gcc server.c -o server
gcc client
Abrir. 2 consolas: una está funcionando. /server mientras el otro se está ejecutando. /cliente.
servidor.c:
================================= == ========
# incluir ltstdio.h gt
# incluir ltstdlib.h gt
# incluir ltstring.h gt
# incluye ltsys/types . h gt;
# incluye ltsys/socket . h gt;
# incluye ltarpa/inet . >
# incluir número de errorgt
#Definir tamaño de búfer 1024
typedef struct sockaddr SA
int main(void)
{
char buf[tamaño del búfer];
Estructura sockaddr _ en addr_s
Estructura sockaddr _ en addr_c
int sockfd p>
longitud socklen_t;
int I;
if((sockfd = socket(AF_INET,SOCK_DGRAM,0)) == -1)
{
error("Error en el socket");
return-1;
}
memset(amp; addr_s, 0 , tamaño de (dirección_s)).
addr _ s.sin _ family = AF _ INET
addr _ s . sin _ addr s _ addr = inet _ addr(" 127 . 0 . 0 . 1 ". );
addr_s.sin_port = htons(31180);
if(bind(sockfd, (SA *) & addr_s, sizeof(addr_s)) == -1) p>
{
perror("Error al vincular");
return-1;
}
longitud = tamaño de (addr_c);
memset(buf,' \0 ',sizeof(buf));
if(recvfrom(sockfd,buf,sizeof (buf), 0
, (SA *) amp;addr_c amp;length)==-1)
{
perror(" recvfrom fail ");
}
printf("recvfrom client: s\n ",buf);
sendto(sockfd,buf,sizeof(buf) , 0, (SA *) amp; addr_c , sizeof(addr _ c));
Cerrar (sockfd
}
==== ==========; ======================
Cliente.c:
========== ==========================
# incluir ltstdio.h gt
# incluir ltstdlib. h gt
# incluir ltstring.h gt
# incluir ltsys/types .h gt;
# incluir ltsys/socket
# incluir ltarpa/inet . h gt;
# incluir número de error gt
#Definir tamaño de búfer 1024
typedef struct sockaddr SA p>
int main(void)
{
int sockfd
char buf[ tamaño del búfer];
Estructura sockaddr _ en addr_s
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
{
perror("Error en el socket" );
return-1;
}
memset( amp; addr_s ,0,sizeof(addr_s)).
addr _ s.sin _ family = AF _ INET
addr _ s . sin _ addr s _ addr = inet _ addr(" 127 . 0 . 0 . 1 ". );
addr_s.sin_port = htons(31180);
memset(buf,'\0',sizeof(buf));
sprintf(buf , "abcde");
if(sendto(sockfd,buf,sizeof(buf))
, 0, (SA *) amp; addr_s, sizeof(addr _ s) ) lt; 0)
{
error(" enviar a error ");
}
memset(buf , ' \ 0 ', tamaño de(buf));
recvfrom(sockfd, buf, tamaño de(buf), 0, NULL, NULL;
printf("recvfrom servidor: s\n); ",buf);
Cerrar(sockfd);
}