Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: weggi en 17 Octubre 2011, 22:57 pm



Título: ayuda con socket
Publicado por: weggi en 17 Octubre 2011, 22:57 pm
hola tengo este problema y nose como solucionarlo

Código:
#include <winsock.h>
int main()
{
    int conex;
    int sockaddr;
WSADATA wsa;
WSAStartup(MAKEWORD(2,0),&wsa);
SOCKET sock;
sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
struct hostent *direc;
direc=gethostbyname("smtp.live.com");
u_short puerto;
puerto=htons(587);
struct sockaddr_in remoto;
remoto.sin_family = AF_INET;
remoto.sin_port = htons(587);
remoto.sin_addr = *((struct in_addr *)direc->h_addr);
memset(remoto.sin_zero,0,8);
connect(sock,(sockaddr *)&remoto, sizeof(sockaddr));
return 0;
}


este es el error del compilador:

19 syntax error before ')' token

y otra cosa soy nuevo en esto y no entiendo bien la linea del connect precisamente donde dice "sockaddr *" que funcion hace?


Título: Re: ayuda con socket
Publicado por: Queta en 17 Octubre 2011, 23:19 pm
Te da error de compilación ya que en el segundo parámetro de connect estás haciendo un casting a sockaddr pero al tener una variable definida, y que no usas para nada, con este nombre, creo que el compilador interpreta que quieres hacer el casting a dicha variable. Como consecuencia tienes dos opciones:

  • Cambiar el nombre de la variable.
  • Borrar la variable.

y otra cosa soy nuevo en esto y no entiendo bien la linea del connect precisamente donde dice "sockaddr *" que funcion hace?

http://msdn.microsoft.com/en-us/library/windows/desktop/ms737625.aspx (http://msdn.microsoft.com/en-us/library/windows/desktop/ms737625.aspx)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740496.aspx (http://msdn.microsoft.com/en-us/library/windows/desktop/ms740496.aspx)


Título: Re: ayuda con socket
Publicado por: weggi en 17 Octubre 2011, 23:29 pm
hola queta gracias por responder, pero cuando quito la linea

Código:
int sockaddr;

me devuelve otro error más por esa razón la puse
Código:
18 `sockaddr' undeclared (first use in this function)

 :-\


Título: Re: ayuda con socket
Publicado por: Eternal Idol en 17 Octubre 2011, 23:36 pm
Eso compila bien ... ¿Que compilador usas?


Título: Re: ayuda con socket
Publicado por: weggi en 17 Octubre 2011, 23:40 pm
 hola Eternal Idol uso gcc


Título: Re: ayuda con socket
Publicado por: Eternal Idol en 18 Octubre 2011, 00:11 am
Renombra la extension a .cpp o usa struct antes de sockaddr:

Código
  1. connect(sock, (struct sockaddr*)&remoto, sizeof(struct sockaddr));


Título: Re: ayuda con socket
Publicado por: weggi en 18 Octubre 2011, 00:25 am
gracias master era la extensión  ;D
problema solucionado  ;-)


Título: Re: ayuda con socket
Publicado por: Eternal Idol en 18 Octubre 2011, 00:43 am
De nadas  ::)