elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con sockets WinSock2
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema con sockets WinSock2  (Leído 5,952 veces)
Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Problema con sockets WinSock2
« en: 25 Septiembre 2011, 18:25 pm »

Hola que tal,recien estoy con los sockets,intento conectarme a una IP,por el puerto 80 ya que es una pagina,solo quiero conectar,el codigo no da error,peor el IF que averigua si se conecta me da el error,miren:

Código
  1. SOCKET Cliente;
  2. u_short Puerto = 80;
  3. SOCKADDR_IN SockAddr;
  4. char Datos[] = "Hola";
  5. WSADATA skd;
  6.  
  7. int main(void)
  8. {
  9. if(WSAStartup(MAKEWORD(2,0),&skd) != 0)
  10. {
  11. std::cout << "Error initializing socket";
  12. std::cin.get();
  13. return 0;
  14. }
  15. if(socket(AF_INET,SOCK_STREAM,IPPROTO_TCP) == INVALID_SOCKET)
  16. {
  17. std::cout <<"Invalid socket";
  18.  
  19. return 1;
  20. }
  21.  
  22. memset(&SockAddr,0,sizeof(SockAddr));
  23.  
  24. SockAddr.sin_family = AF_INET;
  25. SockAddr.sin_port = htons(Puerto);
  26. SockAddr.sin_addr.s_addr = inet_addr("74.125.39.99");
  27. int con = connect(Cliente,(SOCKADDR *)&SockAddr,sizeof(SOCKADDR_IN));
  28. if(con != 0)
  29. {
  30. std::cout << "Error connecting";
  31. std::cin.get();
  32. return 1;
  33. }
  34.  
  35.  

parece que no conecta :S,algun error ven?¿


En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Problema con sockets WinSock2
« Respuesta #1 en: 25 Septiembre 2011, 19:04 pm »

Nunca le asignas a Cliente lo que devuelve la función socket()...
Código
  1. Cliente = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  2.  


En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Problema con sockets WinSock2
« Respuesta #2 en: 25 Septiembre 2011, 19:32 pm »

Hola,que tal,acabo de agregar la linea que me as dicho,el programa enciende,se queda un rato pensando (cosa que no hacia antes) pero alfinal me tira el mismo error :(
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Problema con sockets WinSock2
« Respuesta #3 en: 25 Septiembre 2011, 19:39 pm »

Cual error te tira?
En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Problema con sockets WinSock2
« Respuesta #4 en: 25 Septiembre 2011, 19:51 pm »

Bueno es el erro que e escrito yo en el utlimo "cout" en la funcion "connect"
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Problema con sockets WinSock2
« Respuesta #5 en: 25 Septiembre 2011, 19:59 pm »

Cambia esto:

Código
  1. connect(Cliente,(SOCKADDR *)&SockAddr,sizeof(SOCKADDR_IN))
  2.  

Por esto:

Código
  1. connect(Cliente,(SOCKADDR *)&SockAddr,sizeof(SOCKADDR))
  2.  
En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Problema con sockets WinSock2
« Respuesta #6 en: 25 Septiembre 2011, 20:05 pm »

Hey,acabo de probar,pero nada sigue sin funcionar :( que raro verdad?¿

puede ser algo de mi ordenador?¿ :S


En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Problema con sockets WinSock2
« Respuesta #7 en: 25 Septiembre 2011, 20:07 pm »

La verdad no veo el error, pero aquí te dejo mi código que me funcionó:

Código
  1. #include <iostream>
  2. #include <Windows.h>
  3. #pragma comment(lib, "Ws2_32.lib")
  4. #define PUERTO 80
  5.  
  6. WSADATA wsa;
  7. SOCKET cliente;
  8. sockaddr_in remoto;
  9.  
  10. int error();
  11.  
  12. int main(){
  13. if(WSAStartup(MAKEWORD(2,2), &wsa))
  14. return error();
  15.  
  16. remoto.sin_family = AF_INET;
  17. remoto.sin_port = htons(PUERTO);
  18. remoto.sin_addr = *((in_addr*)gethostbyname("www.google.com")->h_addr);
  19.  
  20. cliente = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  21.  
  22. if(cliente == INVALID_SOCKET)
  23. return error();
  24.  
  25. if(connect(cliente, (sockaddr*)&remoto, sizeof(sockaddr)))
  26. return error();
  27.  
  28. closesocket(cliente);
  29.  
  30. WSACleanup();
  31.  
  32. return 0;
  33. }
  34.  
  35. int error(){
  36. std::cout << "Error #" << GetLastError() << std::endl;
  37. WSACleanup();
  38.  
  39. getchar();
  40.  
  41. return 0;
  42. }
En línea

Riki_89D


Desconectado Desconectado

Mensajes: 851


BCN CITY


Ver Perfil
Re: Problema con sockets WinSock2
« Respuesta #8 en: 25 Septiembre 2011, 20:25 pm »

perfecto el tuyo si funciona,de todas formas me gustaria saber que a pasado con mi codio mas que nada para aprender un poco mas :) unca viene mal sia lguien ve el error sera de agradecer,muchas gracias por el code ^^
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Problema con sockets WinSock2
« Respuesta #9 en: 25 Septiembre 2011, 20:43 pm »

Creo que porque usaste la estructura SOCKADDR_IN y no sockaddr_in no se la verdad no estoy seguro.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Sockets
Programación Visual Basic
APOKLIPTICO 9 2,303 Último mensaje 6 Octubre 2007, 23:12 pm
por APOKLIPTICO
no se puede abrir el archivo 'Winsock2.lib'
Programación C/C++
YagamiIori2002 3 2,717 Último mensaje 9 Diciembre 2011, 23:03 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines