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?
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.
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)
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)
:-\
Eso compila bien ... ¿Que compilador usas?
hola Eternal Idol uso gcc
Renombra la extension a .cpp o usa struct antes de sockaddr:
connect(sock, (struct sockaddr*)&remoto, sizeof(struct sockaddr));
gracias master era la extensión ;D
problema solucionado ;-)
De nadas ::)