• Viernes 15 de Noviembre de 2024, 03:38

Autor Tema:  Problemilla Con Sockets  (Leído 1049 veces)

Ferr

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Problemilla Con Sockets
« en: Miércoles 19 de Julio de 2006, 22:58 »
0
Buenas !!! Tengo un problema con la funcion bind al compilar con gcc, me da el siguiente error :
      Sockets2.c:36: aviso: se pasa el argumento 2 de ‘bind’ desde un tipo de puntero incompatible

El codigo es muy simple:

#include "sys/socket.h"
#include "sys/types.h"
#include "stdio.h"
#include "stdlib.h"

main (){

  int sockfd;

struct sockaddr
{
  unsigned short sa_family;
  char sa_data[14];
};

struct in_addr
  {
    unsigned long s_addr;
};

struct sockaddr_in
{
  short int sin_family;
  unsigned short sin_port;
  struct in_addr sin_addr;
  unsigned char sin_zero[8];
}direccion;


sockfd =socket (AF_INET,SOCK_DGRAM,0);

direccion.sin_family=AF_INET;
direccion.sin_port= htons(80);
direccion.sin_addr.s_addr=inet_addr("192.168.1.1");

bind (sockfd, (struct sockaddr *)&direccion, sizeof(direccion));

printf ("Tot correcte \n");
}

No se porque me dice que el segundo parametro de bind esta mal, no creo que sea problema de casting

carmamezo

  • Miembro MUY activo
  • ***
  • Mensajes: 232
    • Ver Perfil
Re: Problemilla Con Sockets
« Respuesta #1 en: Jueves 20 de Julio de 2006, 09:19 »
0
direccion es de tipo sockaddr_in no sockaddr.
No puedes hacer una conversión de tipo cast entre dos estructuras incompatibles.

Saludos.
No hay tonto más molesto que el ingenioso.

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: Problemilla Con Sockets
« Respuesta #2 en: Viernes 21 de Julio de 2006, 18:16 »
0
Hola:

Los include deberían ser con < > en vez de con "".

Si se pone < > busca los .h en los directorios del sistema. Si los pones con " " los busca en el mismo directorio donde están tus .c Como son del sistema, deberían ser con < >.

Se bueno.