Red de conocimiento informático - Computadora portátil - Código fuente de subcontratación Cudp

Código fuente de subcontratación Cudp

Por cierto, su dirección no es fácil de usar, así que la cambié a 127.0.0.1, pero el puerto está bien. Escrito cumpliendo plenamente con los requisitos, compilado correctamente, depuración aprobada:

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

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)

{

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

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);

}