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)
| | |-+  Ayuda con sockets en C (bajo windows)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con sockets en C (bajo windows)  (Leído 3,713 veces)
NeoB

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Ayuda con sockets en C (bajo windows)
« en: 8 Agosto 2012, 17:23 pm »

Buenas. Esta vez mi duda es como puedo utilizar una URL en una comunicación con sockets tcp/ip en windows en vez de la IP. Tengo este código:
Código
  1. #include <windows.h>
  2. #include <winsock2.h> //Para sockets
  3. #include <ws2tcpip.h> //Para sockets
  4.  
  5.  
  6. int main()
  7. {
  8. /*************************** DE LOS SOCKETS **************************/
  9. WSADATA wsa;
  10. int sock;
  11. struct sockaddr_in direccion;
  12.  
  13. WSAStartup(MAKEWORD(2,0),&wsa);
  14.  
  15. if((sock=socket(AF_INET,SOCK_STREAM,0))==-1 )
  16. {
  17. return -1;
  18. }
  19.  
  20. direccion.sin_family=AF_INET;
  21. direccion.sin_port=htons(5000);
  22. direccion.sin_addr.s_addr=inet_addr("192.168.1.35");  
  23.  
  24. if(connect(sock,(struct sockaddr*)&direccion,sizeof(direccion))==-1)
  25. {
  26. return -1;
  27. }
  28. /***********  ....va pa largo......   ************/
  29.  
Es decir, cambiar el 192.168.1.35 por algo como "miurl.com".
Utilizo mingw.
Gracias.


« Última modificación: 8 Agosto 2012, 17:24 pm por NeoB » En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Ayuda con sockets en C (bajo windows)
« Respuesta #1 en: 8 Agosto 2012, 17:41 pm »

Hay funciones para eso, consulta gethostbyname().

Saludos.


En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
NeoB

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Ayuda con sockets en C (bajo windows)
« Respuesta #2 en: 9 Agosto 2012, 15:34 pm »

Ya había encontrado la función pero había entendido mal y creía que había que hacerlo con una librería externa. Gracias.
En línea

NeoB

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Ayuda con sockets en C (bajo windows)
« Respuesta #3 en: 9 Agosto 2012, 18:51 pm »

Una última pregunta...
El servidor que utilizo corre en Linux y al intentar conectarlo no va (no pasa nada en el servidor y el cliente se cierra como si no hubiese servidor). En cambio, se el servidor es windows si funciona.
¿Hay algún problema corriente entre las conexiones de Winsock y los sockets de linux o es otro error? (He buscado en google pero los casos que vienen están en Java o hablan de portabilidad...)
En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Ayuda con sockets en C (bajo windows)
« Respuesta #4 en: 9 Agosto 2012, 20:19 pm »

Quiza tenga que ver con el orden en el que los bytes se almacenan en el servidor Linux. ¿Tienes el codigo que usas en Linux?

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
NeoB

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Ayuda con sockets en C (bajo windows)
« Respuesta #5 en: 9 Agosto 2012, 20:40 pm »

He de advertir que el código del servidor es "improvisado" de una web para compilarlo rápido y probar el cliente por lo que no tiene ni salida de los bucles ni nada, solo para ver si se conectan:
Código
  1. #include <sys/types.h>
  2. #include <sys/socket.h>
  3. #include <stdio.h>
  4. #include <netinet/in.h>
  5. #include <arpa/inet.h>
  6. #include <unistd.h>
  7.  
  8. int main()
  9. {
  10.  
  11. int server_sockfd, client_sockfd;
  12. int server_len, client_len;
  13. struct sockaddr_in server_address;
  14. struct sockaddr_in client_address;
  15. char c[1024];
  16.  
  17.  
  18. server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
  19.  
  20.  
  21. server_address.sin_family = AF_INET;
  22. server_address.sin_addr.s_addr = inet_addr("127.0.0.1");
  23. server_address.sin_port = htons(5000);
  24. server_len = sizeof(server_address);
  25. bind(server_sockfd, (struct sockaddr *)&server_address, server_len);
  26. listen(server_sockfd, 5);
  27.  
  28. client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);
  29.  
  30. printf("Cliente conectado\n");
  31. for(;;)
  32. {
  33. read(client_sockfd, c, 1024);
  34. printf(c);
  35. }
  36.  
  37. return 0;
  38.  
  39. }
  40.  
En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Ayuda con sockets en C (bajo windows)
« Respuesta #6 en: 10 Agosto 2012, 15:22 pm »

Pues no se, quiza tenga que ver con que lo configuras con IP de localhost.

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
NeoB

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Ayuda con sockets en C (bajo windows)
« Respuesta #7 en: 10 Agosto 2012, 17:42 pm »

Biennnnnnnn!!!!!
Ya funciona!!!
La verdad es que no entendía muy bien para que esa línea en el servidor (ahora sí).
Al final era cambiar el
Código
  1. inet_addr("127.0.0.1")
por
Código
  1. INADDR_ANY
y ya acepta la conexión.
Muchas gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sockets en windows (C++)
Programación C/C++
Danyel_Casvill 2 3,289 Último mensaje 15 Junio 2011, 02:22 am
por Danyel_Casvill
Ayuda cambio de MAC en placas alfa bajo Windows 7 « 1 2 »
Hacking Wireless
pindonga123 12 7,075 Último mensaje 7 Febrero 2014, 02:19 am
por andreselmejor
[AYUDA] ZNC instalada bajo consola cygwin en Windows
Mensajería
erbuho 0 2,392 Último mensaje 23 Febrero 2016, 12:39 pm
por erbuho
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines