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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Socket C++ cliente/servidor con ip de internet: no me va
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Socket C++ cliente/servidor con ip de internet: no me va  (Leído 3,788 veces)
ellentejilla

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Socket C++ cliente/servidor con ip de internet: no me va
« en: 27 Octubre 2010, 21:02 pm »

Hola wenas, he programado, mas bien copiado, dos rutinas: cliente y servidor. Estas funcionan cuando los pruebo en red privada, pero cuando intento acceder desde un ordenador a otro con la ip de internet del router me da el programa cliente el error: 'connect error' . El listado es:

Código
  1. #include <winsock2.h>
  2. #include <iostream.h>
  3. int gPort = 8888;
  4. int main()
  5. {
  6. SOCKET lhSocket;
  7. SOCKADDR_IN lSockAddr;
  8. WSADATA wsaData;
  9. int lConnect;
  10. int lLength;
  11. char lData[]="SendData";
  12. if(WSAStartup(MAKEWORD(2,0),&wsaData) != 0)
  13. {
  14. cout<<"Socket Initialization Error. Program aborted\n";
  15. system("PAUSE");
  16. return -1;
  17. }
  18. lhSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  19. if(lhSocket == INVALID_SOCKET)
  20. {
  21. cout<<"Invalid Socket "<<GetLastError()<<". Program Aborted\n"<<endl;
  22. }
  23. memset(&lSockAddr,0, sizeof(lSockAddr));
  24. lSockAddr.sin_family = AF_INET;
  25. lSockAddr.sin_port = htons(gPort);
  26. // lSockAddr.sin_addr.s_addr = inet_addr("192.168.1.2"); este si funcionaba
  27. lSockAddr.sin_addr.s_addr = inet_addr("87.267.40.77");
  28.  
  29. lConnect = connect(lhSocket,(SOCKADDR *)&lSockAddr,sizeof(SOCKADDR_IN));
  30. if(lConnect != 0)
  31. {
  32. cout<<"Connect Error. Program aborted\n";
  33. system("PAUSE");
  34. return -1;
  35. }
  36. lLength = send(lhSocket,lData,strlen(lData),0);
  37. if(lLength < strlen(lData))
  38. {
  39. cout<<"Send Error.\n";
  40. }
  41. closesocket(lhSocket);
  42. cout<<"ok";
  43. system("PAUSE");
  44. return 0;
  45. }
  46.  


« Última modificación: 27 Octubre 2010, 21:11 pm por sirdarckcat » En línea

Horricreu
Wiki

Desconectado Desconectado

Mensajes: 290

¡La verdad os hará libres!


Ver Perfil WWW
Re: Socket C++ cliente/servidor con ip de internet: no me va
« Respuesta #1 en: 27 Octubre 2010, 21:22 pm »

Varias cosas no relacionadas con los sockets, pero que son errores graves:

  • iostream.h es una cabecera que ya está obsoleta. Debes incluirla sin el .h final.
  • No usas std:: o using namespace std. Como consecuencia, te da error en cout y en cin.
  • Usas system("pause"). Puede no funcionar en algunos SO, por lo tanto utiliza getchar().


« Última modificación: 16 Noviembre 2010, 22:31 pm por Horricreu » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Socket / cliente servidor
Java
danielo- 4 14,207 Último mensaje 2 Octubre 2009, 23:19 pm
por Debci
socket cliente y servidor c++ / linux
Programación C/C++
d00ze13 0 4,707 Último mensaje 28 Abril 2011, 18:38 pm
por d00ze13
Socket java Servidor Cliente
Java
momo1234 2 4,176 Último mensaje 12 Mayo 2012, 16:57 pm
por momo1234
problema socket internet
Java
netastra 2 1,614 Último mensaje 12 Octubre 2013, 14:45 pm
por ThinkByYourself
Python 3.7 socket socket.gaierror errno7 cliente Android.
Scripting
@XSStringManolo 2 2,724 Último mensaje 28 Diciembre 2019, 00:09 am
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines