[ Foro de C ]

Cliente de flujos error compilacion

30-Aug-2015 13:11
Invitado (Juan María galindio)
0 Respuestas


#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>        
/* netbd.h es necesitada por la estructura hostent ;-) */

#define PORT 3550        
/* El Puerto Abierto del nodo remoto */

#define MAXDATASIZE 100  
/* El número máximo de datos en bytes */

int main(int argc, char *argv[])
{
  int fd, numbytes;      
  /* ficheros descriptores */

  char buf[MAXDATASIZE];  
  /* en donde es almacenará el texto recibido */

  struct hostent *he;        
  /* estructura que recibirá información sobre el nodo remoto */

  struct sockaddr_in server;  
  /* información sobre la dirección del servidor */

  if (argc !=2) {
     /* esto es porque nuestro programa sólo necesitará un
     argumento, (la IP) */
     printf("Uso: %s <Dirección IP>\n",argv[0]);
     exit(-1);
  }

  if ((he=gethostbyname(argv[1]))==NULL){      
     /* llamada a gethostbyname() */
     printf("gethostbyname() error\n");
     exit(-1);
  }

  if ((fd=socket(AF_INET, SOCK_STREAM, 0))==-1){  
     /* llamada a socket() */
     printf("socket() error\n");
     exit(-1);
  }

  server.sin_family = AF_INET;
  server.sin_port = htons(PORT);
  /* htons() es necesaria nuevamente ;-o */
  server.sin_addr = *((struct in_addr *)he->h_addr);  
  /*he->h_addr pasa la información de ``*he'' a "h_addr" */
  bzero(&(server.sin_zero),8);

  if(connect(fd, (struct sockaddr *)&server,
     sizeof(struct sockaddr))==-1){
     /* llamada a connect() */
     printf("connect() error\n");
     exit(-1);
  }

  if ((numbytes=recv(fd,buf,MAXDATASIZE,0)) == -1){  
     /* llamada a recv() */
     printf("Error en recv() \n");
     exit(-1);
  }

  buf[numbytes]='\0';

  printf("Mensaje del Servidor: %s\n",buf);
  /* muestra el mensaje de bienvenida del servidor =) */

  close(fd);   /* cerramos fd =) */

}

El resultado de la compilacion en debian 8.1 es esté ->










jose@debian:~/sockets$ gcc flujos.c -o flujos
flujos.c: In function ?main?:
flujos.c:32:7: warning: incompatible implicit declaration of built-in function ?exit?
      exit(-1);
      ^
flujos.c:38:7: warning: incompatible implicit declaration of built-in function ?exit?
      exit(-1);
      ^
flujos.c:44:7: warning: incompatible implicit declaration of built-in function ?exit?
      exit(-1);
      ^
flujos.c:52:4: warning: incompatible implicit declaration of built-in function ?bzero?
   bzero(&(server.sin_zero),8);
   ^
flujos.c:58:7: warning: incompatible implicit declaration of built-in function ?exit?
      exit(-1);
      ^
flujos.c:64:7: warning: incompatible implicit declaration of built-in function ?exit?
      exit(-1);
      ^
jose@debian:~/sockets$


O sea un cliente de flujos




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)