Dgrama de programación
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
# 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
int main(void)
{
char buf[tamaño del búfer];
Estructura sockaddr _ en addr_s
Estructura en addr_c sockaddr _ en
int sockfd
socklen_t longitud;
int I;
if((sockfd = socket (AF_INET, SOCK_DGRAM, 0 )) == -1)
{
error("Error en el socket");
return-1;
}
memset(& addr_s, 0, tamaño de(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);
if(bind(sockfd,(SA *)&addr_s,sizeof(addr_s)) = = -1)
{
perror("Error al vincular");
return-1;
}
longitud = tamaño de (addr_c);
memset(buf,' \0 ', tamaño de (buf));
if(recvfrom(sockfd,buf, tamaño de (buf), 0 p>
, (SA *)& addr_c & length)== -1)
{
error (" recvfrom fail "); }
printf("recvfrom client:%s\n ",buf);
sendto(sockfd,buf, sizeof(buf), 0, (SA *) & 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 & ltarpa/inet . h & gt;
# incluir & ltNúmero de error& gt
#Definir tamaño de búfer 1024
typedef struct sockaddr SA
int main(void)
{
int sockfd
char buf[tamaño del búfer] ;
Estructura en addr_s sockaddr _ in
if((sockfd = socket (AF_INET, SOCK_DGRAM, 0)) == -1)
{ p>
perror("Error en el socket");
return-1;
}
memset(& 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 *)& addr_s, sizeof( addr _ s)) <0)
{
error(" enviar a error ");
}
memset (buf, ' \0 ', tamaño de(buf));
recvfrom(sockfd, buf, tamaño de(buf), 0, NULL, NULL
printf("recvdel servidor:%s\n); ",buf);
Cerrar(sockfd);
}