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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Revisar cada IP para ver en cual esta el servidor. en: 28 Septiembre 2015, 00:36 am
Buenas tardes.

Hoy tengo un problema, ya que estoy haciendo un servidor y varios clientes en c++ (Conexiones por sockets), los monto en una lan y los clientes los compilo con la ip donde estaría el servidor, el problema surge por que me da la necesidad de poder mover el server de ip constantemente, entonces los clientes tendrían problemas para conectarse y requerirían ser re compilados, como podría hacer para que busquen los clientes la ip donde esta el servidor? o como podrían saber si cierta ip tiene en escucha tal puerto? puedo hacer que se intenten conectar a cada ip en el rango de lan (1-254), pero es muy tardado, necesito saber si hay una forma mas rápida?

Saludos cordiales.  ::)
2  Programación / Programación C/C++ / Re: Emular teclas desde c++ windows. en: 10 Julio 2015, 21:24 pm
Hola,

Ya probé usando parte del codigo y usando ese código únicamente y no funciona, solo buguea las teclas cuando escribo pero no da el pantallazo, aun no se como realizarlo  :huh:
3  Programación / Programación C/C++ / Emular teclas desde c++ windows. en: 10 Julio 2015, 02:01 am
Buenas tardes.

Recientemente eh estado programando un proyecto, estaba buscando información de como realizar a propósito la pantalla azul de la muerte en windows, encontré que escribiendo en las claves del registro y bien programe en c++ para que se escriban solas las claves del registro, pero se realiza con una combinación de teclas las cuales son CTRL + SCROLL LOCK (Bloq/Despl), al presionarlos físicamente sale sin problemas la pantalla azul, pero ahora lo que quiero es hacer un programa que al ejecutarlo salga automáticamente la pantalla azul, pense en hacerlo con:

Código:
            keybd_event( VK_RCONTROL,0x45,KEYEVENTF_EXTENDEDKEY | 0,0 );
            keybd_event( VK_SCROLL,0x45,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,0 );
            keybd_event( VK_SCROLL,0x45,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,0 );
            keybd_event( VK_RCONTROL,0x45,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,0);

Pero aun asi no me da el pantallazo azul al ejecutar, cuando ejecuto otras teclas si las hace sin problemas (ejemplo tecla de windows, shift mas alguna letra para que salga en mayúsculas), pero en este caso no es asi, quisiera saber si me puede apoyar a realizarlo.

Gracias.
4  Programación / Programación C/C++ / Re: Consumo excesivo de ram en thread y sockets en: 1 Julio 2015, 22:30 pm
Muhisimas gracias por tu respuesta ya se pudo solucionar hice lo que me dijiste, solo uso WSA al inicio y final y ya no usa memoria a lo loco ya es aceptable y no aumenta como adicional si quite los handles y deje que los thread terminaran solos si uso variables globales para ello, de verdad gracias  ;D ;-) lmL
5  Programación / Programación C/C++ / Re: Consumo excesivo de ram en thread y sockets en: 1 Julio 2015, 15:26 pm
Código
  1. if(AlreadyCheckList==0)
  2. {
  3.    ExitThread(CheckConex);
  4.    CloseHandle(CheckCC);
  5.    CheckCC=CreateThread(NULL,0,CheckConexion,NULL,0,& CheckConex);
  6.    AlreadyCheckList = 1;
  7. }

ExitThread() cierra el thread actual. El parámetro que recibe es un código de error, no un HANDLE.

De cualquier forma, te recomendaría no cerrar threads de ese modo, y terminar ls funciones limpiamente. Especialmente porque es más 'legible'. Además, si programases en C++, los objetos no se destruirían con ExitThread.

Gracias de hecho antes lo tenia sin ninguna de estas dos funciones
Código:
ExitThread(CheckConex);
    CloseHandle(CheckCC);


El problema es que como me seguia consuimiendo la ram decidi ponerlos para ver si no era el tema de los thread pero al parecer no igual volvere a quitar las funciones pero aun sigo confundido por que me consume tanta ram  :(
6  Programación / Programación C/C++ / Consumo excesivo de ram en thread y sockets en: 1 Julio 2015, 04:10 am
Buenas noches.

Hola tengo una duda, recientemente estoy programando en C un cliente para estar a la escucha de cuando inicie el servidor se conecte automaticamente, sin embargo ya realizado el trabajo el cliente empieza a ocupar mucha ram cuando no se conecta, cada que se repite la funcion de conexion automatica se toman aproximadamente 128 kbs mas, no es mucho pero deje trabajandolo un dia completo y me tomo la mitad de la ram que tenia mi pc, lo que quiero saber es por que y como solucionarlo, este proyecto es mi primer programa en C que es un poco mas complejo ya que nunca habia usado Threads ni sockets, de antemano muchas gracias.

Código:
DWORD WINAPI CheckConexion(LPVOID LPARAM)
{
    while(1)
    {
        if(ConnectList != 1)
        {
            ConnectList = ReIntConexion();
            if(ConnectList != 1)
                Sleep(TIME_RECON);
            else
            {
                AlreadyCheckList = 0;
                ExitThread(CheckConex);
                CloseHandle(CheckCC);
                return 1;
            }
        }
    }
    return 0;
}

int ReIntConexion()
{
    printf("ejecutado");
    if(ConnectList == 1)
        return 0;

    if(AlreadyRecibeDat == 1)
        return 0;

    shutdown(sock, SD_BOTH);
    closesocket(sock);
    WSACleanup();

    WSAStartup(MAKEWORD (2, 2), &wsa);
    if((host = gethostbyname(HostOrIPCo)) == NULL)
    {
        if(AlreadyCheckList==0)
        {
            ExitThread(CheckConex);
            CloseHandle(CheckCC);
            CheckCC=CreateThread(NULL,0,CheckConexion,NULL,0,& CheckConex);
            AlreadyCheckList = 1;
        }
        closesocket(sock);
        WSACleanup();
        return -1;
    }

    sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(sock == -1)
    {
        if(AlreadyCheckList==0)
        {
            ExitThread(CheckConex);
            CloseHandle(CheckCC);
            CheckCC=CreateThread(NULL,0,CheckConexion,NULL,0,&CheckConex);
            AlreadyCheckList = 1;
        }
        closesocket(sock);
        WSACleanup();
        return -1;
    }

    direc.sin_family = AF_INET;
    direc.sin_port = htons(PORT_CONE);
    direc.sin_addr = *((struct in_addr *)host->h_addr);
    memset(direc.sin_zero, 0, 8);
    conex = connect(sock,(struct sockaddr *)&direc, sizeof(struct sockaddr));

    if(conex == -1)
    {
        if(AlreadyCheckList==0)
        {
            ExitThread(CheckConex);
            CloseHandle(CheckCC);
            CheckCC=CreateThread(NULL,0,CheckConexion,NULL,0,& CheckConex);
            AlreadyCheckList = 1;
        }
        shutdown (sock, SD_BOTH);
        closesocket(sock);
        WSACleanup();
        return -1;
    }

    ReceData=CreateThread(NULL,0,RecepcionDatos,NULL,0,& ReceData_);
    AlreadyRecibeDat = 1;
    return 1;
}

Gracias.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines