#include #include #include #include #include #include #include #define MAX_CHAR 256 int main() { int ID_socket_ser, result, long_cli; struct sockaddr_in address_ser, address_cli; char mensaje[MAX_CHAR]; printf("Probando sockets UDP (servidor)\n"); printf("Creando socket... "); ID_socket_ser=socket(AF_INET, SOCK_DGRAM,0); if (ID_socket_ser==-1) { printf("error\n"); exit(-1); } else { printf("ok\n"); } printf("Haciendo bind local... "); address_ser.sin_family = AF_INET; address_ser.sin_addr.s_addr = htonl(INADDR_ANY); address_ser.sin_port = htons(6000); result = bind(ID_socket_ser, (struct sockaddr *) &address_ser, sizeof(address_ser)); if (result<0) { printf("error\n"); exit(-1); } else { printf("ok\n"); } long_cli = sizeof(address_cli); printf("Recibiendo mensajes:\n"); do { memset(mensaje,0x0,MAX_CHAR); result = recvfrom(ID_socket_ser, mensaje, MAX_CHAR, 0, (struct sockaddr *) &address_cli, &long_cli); if (result<0) { printf("error\n"); exit(-1); } else { printf("%s\n",mensaje); } } while(strncmp(mensaje,"fin",3)); return 0; }