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 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ... 331
201  Programación / Programación Visual Basic / Re: Permitir múltiples conexiones a un servidor Winsock en: 17 Diciembre 2012, 08:21 am
Esta muy feo ese código...
Mientras tanto puedes ver este tema:

http://foro.elhacker.net/programacion_visual_basic/duda_con_winsock-t320011.0.html;msg1582889#msg1582889

Dulces Lunas!¡.
202  Programación / Programación Visual Basic / Re: Ayuda !!! Winsock Multi Puertos ¿? URGENTE! en: 17 Diciembre 2012, 08:18 am
Si es winsock... o una variante... pero a fin de cuentas es lo mismo.

Dulces Lunas!¡.
203  Programación / Programación Visual Basic / Re: Ayuda !!! Winsock Multi Puertos ¿? URGENTE! en: 15 Diciembre 2012, 04:06 am
Ojo estos errores se solucionan usan los IF THEN ELSE END IF (Comprobar estados, por si te da weba buscar es la propiedad .state).

Código
  1.  
  2. Constante                     Valor      Descripción
  3. sckClosed                      0         Predeterminado. Cerrado
  4. sckOpen                        1         Abierto
  5. sckListening                   2         Escuchando
  6. sckConnectionPending           3         Conexión pendiente
  7. sckResolvingHost               4         Resolviendo host
  8. sckHostResolved                5         Host resuelto
  9. sckConnecting                  6         Conectando
  10. sckConnected                   7         Conectado
  11. sckClosing                     8         El equipo está cerrando la conexión
  12. sckError                       9         Error
  13.  
  14.  

Por ejemplo:

Código
  1.  
  2. Private Sub tcpServer_ConnectionRequest (ByVal requestID As Long)
  3.  ' Comprueba si el estado del control es cerrado.
  4.  ' De lo contrario, cierra la conexion antes de
  5.  ' aceptar la nueva conexion.
  6.  If tcpServer.State <> sckClosed Then _
  7.    tcpServer.Close ' Si no hacemos esto y el socket esta conectado nos arrojara un error...
  8.  
  9.  ' Acepta la peticion con el parametro
  10.  ' requestID.
  11.  tcpServer.Accept requestID
  12. End Sub
  13.  
  14.  

Dulces Lunas!¡.
204  Programación / Programación Visual Basic / Re: Ayuda !!! Winsock Multi Puertos ¿? URGENTE! en: 15 Diciembre 2012, 04:01 am
.
Usa el buscador, esto ya esta en otros Post.

Totorial Winsock

* Usa un poco de lógica, si te dice "Operacion no valida en el estado actual." entonces ¿Por que no rectificas el estado actual del socket y realizas dicha acción?, algunos casos que dan este problema son: El socket esta en escucha, enviando informacion, esta cerrado, etc.

En el evento Error del socket te saltan estas constantes.

Código
  1.  
  2. Constante                      Valor   Descripción
  3. sckOutOfMemory                  7      Sin memoria
  4. sckInvalidPropertyValue         380    El valor de la propiedad no es válido.
  5. sckGetNotSupported              394    No se puede leer la propiedad.
  6. sckSetNotSupported              383    La propiedad es de sólo lectura.
  7. sckBadState                     40006  Protocolo o estado de conexión incorrecto para la solicitud o la transacción requerida.
  8. sckInvalidArg                   40014  El argumento que se pasó a una función no estaba en el formato correcto o en el intervalo especificado.
  9. sckSuccess                      40017  Correcto.
  10. sckUnsupported                  40018  Tipo Variant no aceptado.
  11. sckInvalidOp                    40020  La operación no es válida en el estado actual.
  12. sckOutOfRange                   40021  El argumento está fuera del intervalo.
  13. sckWrongProtocol                40026  Protocolo erróneo para la solicitud o la transacción requerida.
  14. sckOpCanceled                   10004  Se canceló la operación.
  15. sckInvalidArgument              10014  La dirección solicitada es una dirección de multidifusión, pero el indicador no está activado.
  16. sckWouldBlock                   10035  El socket es no bloqueante y la operación especificada se bloqueará.
  17. sckInProgress                   10036  Se está efectuando una operación de Winsock bloqueante.
  18. sckAlreadyComplete              10037  Se completó la operación. No se están efectuando operaciones bloqueantes.
  19. sckNotSocket                    10038  El descriptor no es un socket.
  20. sckMsgTooBig                    10040  El datagrama es demasiado grande para el búfer y se truncará.
  21. sckPortNotSupported             10043  El puerto especificado no es compatible.
  22. sckAddressInUse                 10048  Dirección en uso.
  23. sckAddressNotAvailable          10049  La dirección no está disponible en la máquina local.
  24. sckNetworkSubsystemFailed       10050  Error en el subsistema de red.
  25. sckNetworkUnreachable           10051  El host no puede encontrar la red en este momento.
  26. sckNetReset                     10052  Expiró el tiempo de espera de la conexión antes de establecer SO_KEEPALIVE.
  27. sckConnectAborted               10053  La conexión se ha cancelado al sobrepasar el tiempo de espera o por otro error.
  28. sckConnectionReset              10054  La conexión se ha restablecido desde el lado remoto.
  29. sckNoBufferSpace                10055  No hay espacio disponible en el búfer.
  30. sckAlreadyConnected             10056  El socket ya está conectado.
  31. sckNotConnected                 10057  El socket no está conectado.
  32. sckSocketShutdown               10058  El socket se ha desactivado.
  33. sckTimedout                     10060  Se ha sobrepasado el tiempo de conexión.
  34. sckConnectionRefused            10061  Se ha forzado el rechazo de la conexión.
  35. sckNotInitialized               10093  Es necesario llamar primero a WinsockInit.
  36. sckHostNotFound                 11001  Respuesta autorizada: host no encontrado.
  37. sckHostNotFoundTryAgain         11002  Respuesta no autorizada: host no encontrado.
  38. sckNonRecoverableError          11003  Errores no recuperables.
  39. sckNoData                       11004  Nombre válido; no hay registro de datos del tipo solicitado.
  40.  
  41.  

Dulces Lunas!¡.
205  Programación / Programación C/C++ / Re: [AYUDA] Con lista en C en: 13 Diciembre 2012, 07:15 am
Te dejo una pequeña libreria que hace ya unos meses atras me cree para tratar listas de manera mas generica en C.

list.h
Código:

#ifndef CSLIST_H_INCLUDED
#define CSLIST_H_INCLUDED

#include <stdbool.h>
#include <stdlib.h>
#include <stddef.h>
#include <stdint.h>

typedef
enum {
    LIST_CMP_EQUAL          = 0x0,
    LIST_CMP_LESS_THAT      = 1,
    LIST_CMP_GREATER_THAT   = -1
} list_cmp_t;

typedef enum {
    LIST_SORT_ASC,      /* Indica que se copiaran los elemento antes del elemento indicado. No usar en conjunto de LIST_COPY_RIGHT. */
    LIST_SORT_DESC      /* Indica que se copiaran los elementos despues del elementos indicado. No usar en conjunto de LIST_COPY_LEFT. */
} list_sort_t;

typedef void*               list_t;
typedef list_t*             list_ptr_t;
#define LIST_NULL           NULL

typedef intptr_t            list_value_t;
typedef list_value_t*       list_value_ptr_t;
#define LIST_VALUE_NULL     NULL

typedef list_value_ptr_t    list_item_t;
typedef list_item_t*        list_item_ptr_t;
#define LIST_ITEM_NULL      NULL

typedef size_t              list_size_t;
typedef list_size_t*        list_size_ptr_t;

/** Definición de callback que se encarga de crear un duplicado del list_value_t indicado en el parámetro value.
 * @param value: list_value_t que se duplicara.
 * @return Retorna el elemento list_value_t duplicado del parámetro value.
 */
typedef
list_value_t(*list_callback_clone_item)
(const list_value_t value);

/** Definición de callback que se encarga de destruir la memoria asignada al list_value_t.
 * @param value: list_value_t que se liberara.
 */
typedef
void(*list_callback_release_item)
(const list_value_t value);

/** Definición de callback que se encarga comparar dos list_value_t.
 * @param value1: list_value_t que se comparara con value2.
 * @param value2: list_value_t que se comparara con value1.
 * @return Retorna el resultado de la comparación.
 *    LIST_CMP_LESS_THAT: Si value1 < value2.
 *    LIST_CMP_EQUAL: Si value1 == value2.
 *    LIST_CMP_GREATER_THAT: Si value1 > value2.
 */
typedef
list_cmp_t(*list_callback_compare_item)
(const list_value_t value1,
const list_value_t value2);

/** Crea una nueva lista de elementos list_value_t.
 * @param clone_item: Apuntador a la función callback que retornara la copia del valor a asignar.
 * @param release_item: Apuntador a la función callback que liberara la copia del valor duplicado en el list_callback_clone_item.
 * @param clone_item: Apuntador a un proceso callback que se encarga de comparar los list_item_t.
 * @return Retorna la nueva cola de datos queue_t que debera ser destruida con list_release().
 */
list_t
list_allocator(list_callback_clone_item clone_item,
               list_callback_release_item release_item,
               list_callback_compare_item compare_item);

/** Función que destruye una lista.
 */
void
list_release(list_t list);

/** Función que remueve TODOS los elementos de la lista.
 * @return Retorna la cantidad de elementos removidos de la lista.
 */
list_size_t
list_clear(list_t list);

/** Función que agrega n cantidad de elementos repetidos (value) a la lista, reemplazando los existentes.
 * @param list: Lista en la que se agregara value n veces.
 * @param n: Cantidad de valores a agregar a la lista.
 * @param value: Valor a agregar n veces a la lista.
 * @return Retorna el primer elemento agregado; NULL si no se a agregado ningun elemento.
 */
list_item_t
list_assign(list_t list,
            list_size_t n,
            list_value_t value);

/** Función que agrega un elemento al final de la lista.
 * @param list: lista a la cual se le agregara un elemento nuevo.
 * @param value: Valor a agregar a la lista.
 * @return Retorna el item en la lista.
 */
list_item_t
list_pushback(list_t list,
              list_value_t value);

/** Función que agrega un elemento al inicio de la lista.
 * @param list: Lista a la cual se le agregara un elemento nuevo.
 * @param value: Valor a agregar a la lista.
 * @return Retorna el item en la lista.
 */
list_item_t
list_pushfront(list_t list,
               list_value_t value);

/** Función que agrega un elemento en la lista antes de un elemento indicado.
 * @param item: Elemento pivote que esta dentro de una lista.
 * @param value: Valor a agregar a la lista antes del pivote.
 * @return Retorna el item en la lista.
 */
list_item_t
list_pushprev(list_item_t item,
              list_value_t value);

/** Función que agrega un elemento aen la lista despues de un elemento indicado como pivote.
 * @param item: Elemento pivote que esta dentro de una lista.
 * @param value: Valor a agregar a la lista despues del pivote.
 * @return Retorna el item en la lista.
 */
list_item_t
list_pushnext(list_item_t item,
              list_value_t value);


/** Función que obtiene la lista a la cual pertenece un item.
 * @param list: Lista de la cual se obtendra su primer elemento list_item_t.
 * @return Devuelve la lista list_t a la cual pertenece dicho item; NULL si no pertenece a ninguna lista.
 */
list_t
list_getlist(list_item_t item);

/** Función que obtiene el primer elemento de una lista.
 * @param list: Lista de la cual se obtendra su primer elemento list_item_t.
 * @return Devuelve el primer list_item_t de la lista.
 */
list_item_t
list_begin(list_t list);

/** Función que obtiene el ultimo elemento de una lista.
 * @param list: Lista de la cual se obtendra el ultimo elemento list_item_t.
 * @return Devuelve el ultimo list_item_t de la lista.
 */
list_item_t
list_back(list_t list);

/** Función que verifica si una lista esta vacia.
 * @param list: Lista que se verificara.
 * @return Retorna:
 *  True: si la lista esta vacia.
 *  False: Si contiene por lo menos un elemento.
 */
bool
list_empty(list_t list);

/** Función que retorna el item anterior al inicado.
 * @param item: Item pivote en la lista.
 * @return Retorna el list_item_t anterior al indicado; NULL si no hay ningun item.
 */
list_item_t
list_before(list_item_t item);

/** Función que retorna el item siguiente al inicado.
 * @param item: Item pivote en la lista.
 * @return Retorna el list_item_t siguiente al indicado; NULL si no hay ningun item.
 */
list_item_t
list_after(list_item_t item);

/** Función que busca un valor a partir de un pivote indicado dentro de una lista.
 * @param item: Elemento pivote desde el cual se empresara a buscar el valor indicado en value.
 * @param value: Valor a buscar en la lista apartir de el pivote indicado.
 * @return Retorna NULL si no se a encontrado dentro de la lista en caso
 * contrario retorna el elemento .
*/
list_item_t
list_findnext(list_item_t item,
              list_value_t value);

/** Función que busca un valor a partir de un pivote indicado dentro de una lista.
 * @param item: Elemento pivote desde el cual se empresara a buscar el valor indicado en value.
 * @param value: Valor a buscar en la lista antes de el pivote indicado.
 * @return Retorna NULL si no se a encontrado dentro de la lista en caso
 * contrario retorna el elemento .
*/
list_item_t
list_findprev(list_item_t item,
              list_value_t value);

/** Función que intercambia los valores entre dos elementos cuales quiera, inclusive entre listas.
 * @param item1: Elemento involucrado en el intercambio.
 * @param item2: Elemento involucrado en el intercambio.
 * @return Retorna TRUE si no hubo errores y FALSE si no se puedo intercambiar los dos elementos.
 */
bool
list_swap(list_item_t item1,
          list_item_t item2);

/** Función que elimina un list_item_t de su lista.
 * @param item: Elemento que se extraera de su lista.
 */
void
list_erase(list_item_t item);

/** Función que mezcla dos listas generando una nueva lista que debera ser liberada con list_release().
 * @param list1: Los elementos de esta lista se agregaran al inicio.
 * @param list2: Los elementos de esta lista se agregaran al seguidos de los de list1.
 * @return Retorna una nueva lista que contendran las copias de las dos listas espesificadas.
 */
list_t
list_join(list_t list1,
          list_t list2);

/** Función que retorna la cantidad de elementos en la lista.
 * @param list: Lista de la cual se retornaran la cantidad de elementos almacenados en ella.
 *
 * @return Retorna la cantidad de elementos en la lista.
 */
list_size_t
list_size(list_t list);

/** Función que copia los elementos de una lista a otra.
 * @param dst: Elemento pivote en donde se se hubicaran los elementos a copiar desde src.
 * @param src: Elemento pivote de una lista que se le clonaran sus elementos para agregarlos en la lista destino dst.
 * @param n: Cantidad máxima de elementos que copiaran.
 *
 * @return Retorna la cantidad de elementos agregados en la listda dst.
 */
list_size_t
list_copy(list_item_t dst,
          list_item_t src,
          list_size_t n);

/** Función que clona por completo una lista.
 * @param list: Lista que será clonada.
 *
 * @return Retorna una nueva lista que debera ser liberada con list_release().
 */
list_t
list_clone(list_t list);

/** Función que ordena los elementos de una lista.
 * @param list: lista que se ordenara.
 * @param sort: Indica el modo en el que serán ordenados los elementos
 * LIST_SORT_ASC/LIST_SORT_DESC:
 */
void
list_sort(list_t list,
          list_sort_t sort);

#endif // CSLIST_H_INCLUDED


Descargar

Código
  1. #define LOOP 1
  2. ...
  3.  
  4. uint32_t min(uint32_t a, uint32_t b) {
  5.    return (a<b) ? a:b;
  6. }
  7.  
  8. void swap(int32_t *a, int32_t *b) {
  9.    *a ^= *b;
  10.    *b ^= *a;
  11.    *a ^= *b;
  12. }
  13.  
  14. int randomnumber(int32_t lower, int32_t upper) {
  15.    if (min(lower, upper) != lower) {
  16.        swap(&lower, &upper);
  17.    }
  18.    return lower + rand() % ((upper + 1) - lower);
  19. }
  20.  
  21. ...
  22.  
  23.    list_t      list = list_allocator(NULL, NULL, NULL);
  24.    list_item_t item = LIST_ITEM_NULL;
  25.  
  26.    for (int k = 0; k <= LOOP; ++k) {
  27.  
  28.        puts("Eliminando datos.");
  29.        list_clear(list);
  30.        puts("Lista limpia.\n");
  31.        puts("Ingresando datos.");
  32.        for (uint_fast32_t i = 0; i <= 10000000; ++i) {
  33.            list_pushback(list, randomnumber(i, i));
  34.        }
  35.        puts("fin de insercion de los datos.\n");
  36.    /*
  37.         for (item = list_begin(list); item != NULL; item = list_after(item))
  38.             printf("%7.0d\t", (int)*item);
  39.         printf("\n");
  40.     */
  41.        puts("Ordenando datos.");
  42.        list_sort(list, LIST_SORT_ASC);
  43.        puts("Fin de ordenacion de los datos.\n");
  44.    /*
  45.         for (item = list_begin(list); item != NULL; item = list_after(item))
  46.             printf("%7.0d\t", (int)*item);
  47.         printf("\n");
  48.     */
  49.    }
  50.    list_release(list);
  51.  
  52.  

Dulces Lunas!¡.
206  Foros Generales / Noticias / Re: Los hackers de GhostShell filtran 1,6 millones de cuentas de más de 30 sitios... en: 12 Diciembre 2012, 10:40 am
http://pastebin.com/agUFkEEa

Dulces Lunas!¡.
207  Programación / Programación C/C++ / Re: examen de opciones multiples en c, guardando un valor deja de funcionar en: 10 Diciembre 2012, 07:01 am
en lugar de

scanf("%s",respuesta);

usa

scanf("%c",&respuesta);
o usa respuesta = getchar();

Aun que te recomiendo que mejor implementes esto: http://foro.elhacker.net/programacion_cc/para_que_dejeis_de_preguntar_de_una_vez_por_los_menus-t276719.0.html

Dulces Lunas!¡.
208  Programación / Programación Visual Basic / Re: [Ayuda] Como conectar por inversa el RAT de LeandroA en: 8 Diciembre 2012, 20:09 pm
De hecho el router no comprueba los puertos en un lookback desde tu red al que pertenece el ruteador, al menos que haya otro ruteador conectado a ese router... perdón no te leí completamente.

Aun así puedes comprobar si tu programa puede aceptar conexiones o datos por los puertos especificados: ScanX

Nota: Algunos ruteadores tienen una opción para los DNS de NOIP (el mio tiene esa opción de manera nativa) explora sus opciones.

Dulces Lunas!¡.
209  Programación / Programación Visual Basic / Re: [Ayuda] Como conectar por inversa el RAT de LeandroA en: 8 Diciembre 2012, 06:48 am
Si la noip apunta a tu ip y desde de esa ip es una de tus computadoras ( nat loopback ) solo abre el archivos host y agrega en este la DNS apuntando a tu IP local (Es una alternativa claro esta).

Dulces Lunas!¡.
210  Programación / Programación C/C++ / Re: MENUS en: 27 Noviembre 2012, 06:45 am
mira...

http://foro.elhacker.net/programacion_cc/para_que_dejeis_de_preguntar_de_una_vez_por_los_menus-t276719.0.html

Dulces Lunas!¡.
Páginas: 1 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ... 331
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines