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


