Tengo errores en el código, si alguien me pudiese ayudar porfa, este socket deberá ser servidor ya que estará en escucha y procederá a ser lo del guardar en archivo.txt
Les dejo el código.
Código:
/* * */ #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h> #define PORT 25558 /* El puerto que sera abierto */ #define BACKLOG 2 /* El numero de conexiones permitidas */ main() { int fd, fd2; /* los ficheros descriptores */ FILE *archivo; // archivo puntero struct sockaddr_in server; /* para la informacion de la direccion del servidor */ struct sockaddr_in client; /* para la informacion de la direccion del cliente */ int sin_size; /* A continuacion llamada a socket() */ if ((fd=socket(AF_INET, SOCK_STREAM, 0)) == -1 ) { printf("error en socket()\n"); exit(-1); } server.sin_family = AF_INET; server.sin_port = htons(PORT); /* le doy el puerto =) */ server.sin_addr.s_addr = INADDR_ANY; /* asigna IP*/ bzero(&(server.sin_zero),8); /* escribimos ceros en el reto de la estructura */ /* llamada a bind() */ if(bind(fd,(struct sockaddr*)&server, sizeof(struct sockaddr))==-1) { printf("error en bind() \n"); exit(-1); } if(listen(fd,BACKLOG) == -1) { /* llamada a listen() */ printf("error en listen()\n"); exit(-1); } while(1) { sin_size=sizeof(struct sockaddr_in); /* llamada a accept() */ if ((fd2 = accept(fd,(struct sockaddr *)&client, &sin_size))==-1) { printf("error en accept()\n"); exit(-1); } /*abrimos el archivo y lo escribimos mediante 'a' si no existe lo crea*/ archivo=fopen("ConexionUDP.txt", "a"); /*Si no lo logramos abrir, salimos*/ if(archivo==NULL) { printf ("No se puede abrir el archivo..."); return 1; } /*Escribimos en el archivo*/ fprintf(archivo, &sin_size); /*Cerramos el archivo*/ fclose(archivo); return 0; printf("mensaje del equipo: %s\n", inet_ntoa(client.sin_addr) ); close(fd2); /* cierra fd2*/ }// fin while }// fin main