Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DaniekL en 6 Marzo 2013, 19:07 pm



Título: Problema con sockets en linux
Publicado por: DaniekL en 6 Marzo 2013, 19:07 pm
Buenas, tengo este código que su idea es ser un pequeño cliente de irc, pero por ahora solo crea y conecta el socket. El problema viene al compilar:

Código:
$ gcc ircclientlinux.c 
ircclientlinux.c: En la función ‘main’:
ircclientlinux.c:13:21: error: no se conoce el tamaño de almacenamiento de ‘addr’

El código es el siguiente:
Código
  1. #include <unistd.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <sys/socket.h>
  6.  
  7. #define PORT 6667
  8. #define SERVER "128.237.157.136"
  9.  
  10. int main(void) {
  11.  
  12. int sockfd;
  13. struct sockaddr_in addr;
  14.  
  15. if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
  16. printf("Error al crear el socket\n");
  17. return 0;
  18. }
  19. addr.sin_family = AF_INET;
  20. addr.sin_port = htons(PORT);
  21. addr.sin_addr.s_addr = inet_addr(SERVER);
  22. bzero(&(addr.sin_zero), 8);
  23.  
  24. if(connect(sockfd, (struct sockaddr *) &addr, sizeof(struct sockaddr)) == -1) {
  25. printf("Error al conectar al servidor\n");
  26. }
  27.  
  28. return 0;
  29. }


Título: Re: Problema con sockets en linux
Publicado por: 0xDani en 6 Marzo 2013, 19:18 pm
Te falta el header netinet/in.h, en el que esta definida la estructura sockaddr_in.

Saludos.


Título: Re: Problema con sockets en linux
Publicado por: DaniekL en 6 Marzo 2013, 19:26 pm
Funcionó  ;D muchas gracias  :laugh:


Título: Re: Problema con sockets en linux
Publicado por: 0xDani en 6 Marzo 2013, 19:31 pm
Funcionó  ;D muchas gracias  :laugh:

Nada, para eso estamos  ;)