elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 02:55  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  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 1,491 veces)
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


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

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
SOCKET Cliente;
u_short Puerto = 80;
SOCKADDR_IN SockAddr;
char Datos[] = "Hola";
WSADATA skd;
 
int main(void)
{
if(WSAStartup(MAKEWORD(2,0),&skd) != 0)
{
std::cout << "Error initializing socket";
std::cin.get();
return 0;
}
if(socket(AF_INET,SOCK_STREAM,IPPROTO_TCP) == INVALID_SOCKET)
{
std::cout <<"Invalid socket";
 
return 1;
}
 
memset(&SockAddr,0,sizeof(SockAddr));
 
SockAddr.sin_family = AF_INET;
SockAddr.sin_port = htons(Puerto);
SockAddr.sin_addr.s_addr = inet_addr("74.125.39.99");
int con = connect(Cliente,(SOCKADDR *)&SockAddr,sizeof(SOCKADDR_IN));
if(con != 0)
{
std::cout << "Error connecting";
std::cin.get();
return 1;
}
 
 

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


En línea
naderST


Desconectado Desconectado

Mensajes: 467



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

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


En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


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

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: 467



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

Cual error te tira?
En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


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

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


Desconectado Desconectado

Mensajes: 467



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

Cambia esto:

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

Por esto:

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


Desconectado Desconectado

Mensajes: 848


BCN CITY


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

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: 467



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

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

Código
#include <iostream>
#include <Windows.h>
#pragma comment(lib, "Ws2_32.lib")
#define PUERTO 80
 
WSADATA wsa;
SOCKET cliente;
sockaddr_in remoto;
 
int error();
 
int main(){
if(WSAStartup(MAKEWORD(2,2), &wsa))
return error();
 
remoto.sin_family = AF_INET;
remoto.sin_port = htons(PUERTO);
remoto.sin_addr = *((in_addr*)gethostbyname("www.google.com")->h_addr);
 
cliente = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 
if(cliente == INVALID_SOCKET)
return error();
 
if(connect(cliente, (sockaddr*)&remoto, sizeof(sockaddr)))
return error();
 
closesocket(cliente);
 
WSACleanup();
 
return 0;
}
 
int error(){
std::cout << "Error #" << GetLastError() << std::endl;
WSACleanup();
 
getchar();
 
return 0;
}
En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


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

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: 467



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

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


Desconectado Desconectado

Mensajes: 848


BCN CITY


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

hey,donde pone "google.com" ai e puesto "localhost",i em tira el error 10061 k significa conexion rechazada,por lo visto nop pueod conectar a mi propio host,sabes que puede ser?
En línea
naderST


Desconectado Desconectado

Mensajes: 467



Ver Perfil
Re: Problema con sockets WinSock2
« Respuesta #11 en: 26 Septiembre 2011, 05:10 »

Que raro... si tienes algún servidor a la escucha en el puerto que te estás tratando de conectar debería funcionar.
En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Problema con sockets WinSock2
« Respuesta #12 en: 26 Septiembre 2011, 21:22 »

Hola de nuevo,que tal,me surio un pequeño problemilla,ya consegui conectar los sockets i enviar datos al servidor,lo que pasa uqe cuando mando un simple "Hola" al llegar al servidor llega como caracteres raros :S no llega el "Hola" llegan cosas como "?$%" o cosas asin.....por que puede ser?¿
En línea
naderST


Desconectado Desconectado

Mensajes: 467



Ver Perfil
Re: Problema con sockets WinSock2
« Respuesta #13 en: 26 Septiembre 2011, 21:43 »

El servidor lo hiciste tu? Si muestras algo de código sería mejor...
En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Problema con sockets WinSock2
« Respuesta #14 en: 26 Septiembre 2011, 21:56 »

Cliente:

Código
#include "windows.h"
#include "iostream"
#pragma comment(lib,"ws2_32.lib")
 
#define PORT 9999
 
WSADATA wsa;
SOCKET Client;
int Conexion;
sockaddr_in Remote_Server;
 
int Error()
{
std::cout << "Error " << GetLastError() << std::endl;
getchar();
return 0;
}
 
int main(void)
{
   if(WSAStartup(MAKEWORD(2,0),&wsa) != 0)
{
Error();
}
 
Remote_Server.sin_family = AF_INET;
Remote_Server.sin_port = htons(PORT);
Remote_Server.sin_addr = *((in_addr *)gethostbyname("localhost")->h_addr);
 
Client = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
 
Conexion = connect(Client,(sockaddr *)&Remote_Server,sizeof(sockaddr));
 
if(Conexion == INVALID_SOCKET)
{
Error();
}
 
char *Buffer = (char*)malloc(5);
send(Client,Buffer,strlen(Buffer),0);
free(Buffer);
 
return 0;
}
 


Servidor:
Código
#include "windows.h"
#include "iostream"
#pragma comment(lib,"ws2_32.lib")
 
#define PORT 9999
 
WSADATA wsa;
SOCKET Client;
int Conexion;
sockaddr_in Remote_Server;
 
int Error()
{
std::cout << "Error " << GetLastError() << std::endl;
getchar();
return 0;
}
 
int main(void)
{
   if(WSAStartup(MAKEWORD(2,0),&wsa) != 0)
{
Error();
}
 
Remote_Server.sin_family = AF_INET;
Remote_Server.sin_port = htons(PORT);
Remote_Server.sin_addr = *((in_addr *)gethostbyname("localhost")->h_addr);
 
Client = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
 
Conexion = bind(Client,(SOCKADDR*)&Remote_Server,sizeof(Remote_Server));
listen(Client,10);
accept(Client,NULL,NULL);
char *Buffer = (char*)malloc(5);
while(true)
{
 
recv(Client,Buffer,strlen(Buffer),0);
if(strcmp(Buffer,"Hola"))
{
break;
}
 
}
std::cout << Buffer <<std::endl;
getchar();
free(Buffer);
return 0;
}
 

los datos se mandan,pero no se ven los caracteres correcamente
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 y PHP
Programación General
eLank0 2 488 Último mensaje 29 Julio 2005, 22:03
por pepel
Fallo al compilar usando winsock2.h « 1 2 »
Programación C/C++
Solid19 15 2,658 Último mensaje 15 Marzo 2006, 00:13
por Solid19
problema con sockets...
Programación C/C++
vacio 4 545 Último mensaje 4 Julio 2006, 07:47
por vacio
problema sockets
Programación C/C++
viruss1362 4 442 Último mensaje 30 Julio 2006, 23:01
por viruss1362
no se puede abrir el archivo 'Winsock2.lib'
Programación C/C++
YagamiIori2002 3 621 Último mensaje 9 Diciembre 2011, 23:03
por Eternal Idol
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines