Test Foro de elhacker.net SMF 2.1

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


#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:


Cita de: weggi en 17 Octubre 2011, 22:57 PM
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

int sockaddr;

me devuelve otro error más por esa razón la puse

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:

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  ::)