| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
dreams_eater
Registrado: 03 Oct 2007 Mensajes: 21
| Publicado: 03/10/2007 2:08 pm | | | Título: falla al linkear, sokets |
| Soy nuevo en DevC++, pero viejo con C++( trabaje con el borland y el turboC++ DOS). Postie aca y no en "Programación en Servidores", pensando que este es el más adecuado. Mi pregunta es cual es la falla, me habre olvidado algun using...?
| Código: | #include <winsock.h> #include <iostream> using std::cerr; using std::cout; using std::endl; #include <stdio.h> #include <string.h>
hostent *p;//struct donde ahi va a guardar el host externo char *alias; int i; IN_ADDR add;
int main(int argc, char *argv[]) {
if(argc!=2) { strerror(errno); cout << "error debe pasar un dominio!!"; return 1; } WSADATA wsaData;
if (WSAStartup(MAKEWORD(1, 1), &wsaData) !=0){ cerr << "WSAStartup fallo"; return 1; } p=gethostbyname(argv[1]); if (p==NULL) { strerror(errno); cerr << "error en gethostbyname(),no se pudo obtener el host" << endl; return 1; } else { cout << "nombre del host :" << p->h_name << endl; memcpy(&add.S_un,p->h_addr_list[0],p->h_length); cout << "dirección IP :" << inet_ntoa(add) << endl; cout << "tipo de direccion: " << p->h_addrtype << endl; cout << "longuitud de la direccion en byte :" << p->h_length << endl; if(p->h_aliases[0]!=NULL) { cout << "alias :" << p->h_aliases[0] << endl; } cout << "direcciones IP :" << endl; i=0; while(p->h_addr_list[i]) { memcpy(&add.S_un,p->h_addr_list[i],p->h_length); cout << "direccion IP :" << inet_ntoa(add) << endl; i++; }
} WSACleanup(); return 0; } |
El codigo original era para VC++ y yo lo adapte. Lo saque de C con clase, es que soy nuevo con sockets |
|
| Volver arriba | |
 |
cheroky
Registrado: 22 Sep 2005 Mensajes: 1372 Ubicación: En ecx esperando un call
| Publicado: 03/10/2007 2:41 pm | | | Título: |
| El código es correcto, probablemente tengas un error de vinculación, tienes que enlazar con la biblioteca libwsock32.a
S2. _________________ - Explícito es mejor que implícito. - Simple es mejor que complejo. - Complejo es mejor que complicado. - Plano es mejor que anidado. - Ralo es mejor que denso. |
|
| Volver arriba | |
 |
dreams_eater
Registrado: 03 Oct 2007 Mensajes: 21
| Publicado: 03/10/2007 5:55 pm | | | Título: |
| y con que comando añado al linker la libwsock32.a?
supongo: -lwsock32
Me compilo OK....ahora lo pruevo |
|
| Volver arriba | |
 |
|
dreams_eater
Registrado: 03 Oct 2007 Mensajes: 21
| Publicado: 03/10/2007 6:14 pm | | | Título: |
| impecable!
Creo que aprendi algo nuevo, Gracias 1000, cheroky.
PD: Pasame un buen tutorial, si no queres que te siga molestando, con dudas de novato. (xD) |
|
| Volver arriba | |
 |
cheroky
Registrado: 22 Sep 2005 Mensajes: 1372 Ubicación: En ecx esperando un call
| Publicado: 03/10/2007 7:10 pm | | | Título: |
| | dreams_eater escribió: | | PD: Pasame un buen tutorial, si no queres que te siga molestando, con dudas de novato. (xD) |
No es ninguna molestia. Un tutorial para iniciarse en sockets, busca por la guia beej, para lo demas google.
S2. _________________ - Explícito es mejor que implícito. - Simple es mejor que complejo. - Complejo es mejor que complicado. - Plano es mejor que anidado. - Ralo es mejor que denso. |
|
| Volver arriba | |
 |
daltomi
Registrado: 28 Abr 2007 Mensajes: 120 Ubicación: Argentina
| Publicado: 03/10/2007 9:38 pm | | | Título: |
| | En el sitio sockaddr.com puedes encontrar varios ejemplos y sobre todo ver un poco lo que es la versión 2.0 o WinSock 2. |
|
| Volver arriba | |
 |
|
dreams_eater
Registrado: 03 Oct 2007 Mensajes: 21
| Publicado: 05/10/2007 7:19 pm | | | Título: |
| Gracias , leere beej, por el momento |
|
| Volver arriba | |
 |
|
|