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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 ... 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 [76] 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 ... 235
751  Programación / Programación C/C++ / Re: CreateThread o CreateProcess en: 21 Septiembre 2016, 17:48 pm
Tengo Cygwin y funciona bien, el detalle que como voy a distribuir la aplicación, quiero que sea lo mas estándar posible (Acorde a cada sistema) y que dependa de la menor cantidad de recursos externos.

Saludos!

752  Programación / Programación C/C++ / CreateThread o CreateProcess en: 21 Septiembre 2016, 17:07 pm
Estoy haciendo un servidor en C el tema es cual funcion debo elegir como la deberia de aplicar.

Tengo 2 versiones de mi servidor, una para sistemas Unix y otra para Windows.

En unix no hay problema solo hago un fork y asunto resuelto:

Código
  1. if(listen(ListenSocket, BACKLOG) == -1) {
  2. perror("error: listen");
  3.  
  4.  
  5.        return 1;
  6.    }
  7. while(entrar) {
  8. pid = fork();
  9. switch(pid) {
  10. case 0:
  11. //Codigo para el Hijo
  12. break;
  13. case -1:
  14. //Error no fallo Fork
  15. break;
  16. default:
  17. //Get the PID for Parent
  18. break;
  19. }
  20. }

Pero no he encontrado una solucion para Windows, el servidor funciona bastante bien, el punto que en windows no es Multihilo aun, y tarda en responder ya que lo hace en orden secuencial.

He visto los siguientes enlaces y aun no doy con una solucion sencilla al tema

http://stackoverflow.com/questions/985281/what-is-the-closest-thing-windows-has-to-fork
http://stackoverflow.com/questions/14642496/any-simple-quick-way-to-fork-on-windows-ansi-c-beginthread-beginthreadex

Repito tengo 2 archivos distintos uno para Windows con winsock y el otro para Unix con Sockets estandar del sistema.

Saludos!
753  Programación / Programación C/C++ / Re: Tutorial de archivos en lenguaje C. - en: 21 Septiembre 2016, 16:19 pm
De las 2 formas es valido.

Si es la misma cantidad de registros no hay por que preocuparse...

Se mueve a la posicion 0 con fseek y se escribe registro por registro.

En caso de que quieraa reescribir (borrar y escribir)

Solo hay que cerrar el archivo actual y abrir uno nuevo con el mismo nombre y en modo "w" o "wb" segun sea de texto o binario y asi escribir registro por registro en el archivo nuevo.

Saludos
754  Foros Generales / Foro Libre / Agregadores (Servicios Moviles) - Lista para darse de baja en: 20 Septiembre 2016, 22:26 pm
Bueno escribo por si alguien tiene el mismo problema

Un agregador en servicios móviles es un servicio donde por X cantidad de dinero semanal el usuario tiene acceso a un "servicio y/o beneficio" si es que realmente sirven de algo, cosa que dudo mucho.

Hace unos días mi numero móvil fue agregado a una lista de Servicios de estos servicios, En teoria estos servicios necesitan confirmación por parte del usuario para ser dado de alta pero la verdad NO ES ASI.

Ver tweets:

https://twitter.com/albertobsd/status/769922393158455297
https://twitter.com/albertobsd/status/769194215318310912

No se como, ni quien fue el responsable de hacer esto, en Atención a clientes de mi proveedor (TELCEL) indican que no existe forma para suscribirse a estos servicios sin que el usuario lo confirme mediante mensaje de texto. Y si les dices que no fuiste tu o cualquier otra cosa vuelven a repetirte lo mismo como grabadora parece que tienen esa indicacion y/o no tienen mente propia

Sospecho las siguientes causas:
  • Te suscribe la misma compañía para sacarte mas dinero
  • Visitastes algun sitio con ads/scripts intrusivos que te suscribieron automáticamente a X servicio

Sospecho lo primero por que en mi caso sucedió exactamente una semana después de cancelar el contrato que tenia con ellos.
Y de lo segundo ya que como programador y aprendiz de hacker se que es posible crear algunos scripts que exploten algun bug en tu movil y envien mensajes de texto silenciosos.


DARTE DE BAJA

Para el caso de telcel tenemos las siguientes opciones:




Anterioremente

Hace años circulaban varias paginas de Internet donde estaba un formulario para agregar un numero de celular a estos servicios, paginas amarillistas como "la fecha de tu muerte", "bruja real", "Video no apto para cardiacos" etc...

Cada vez he visto menos de estas paginas pero lo interesare seria ver para quien trabajan estas paginas y tirarles el servicio.

Historias relacionadas:

https://www.reddit.com/r/mexico/comments/o8bc1/telcel_los_agregadores_de_contenido_y_su_nueva/
https://www.reddit.com/r/mexico/comments/3sbr79/quien_regula_a_los_agregadores_de_contenido_en/
755  Programación / Programación C/C++ / Re: Nose en que estoy fallando - Ejercicio con Punteros en: 18 Septiembre 2016, 16:59 pm
El apuntadador que estas pasando es un int no un t_cuatro

deberia de quedar asi
Código
  1. void MODIFICAR(int *pa, int *pb, int *pc, int *pd);
  2.  
  3. void MODIFICAR(int *pa, int *pb, int *pc, int *pd)
  4. {
  5. t_cuatro aux;
  6.  
  7.  
  8. if(((*pb)< (*pc) ) && ((*pb)< (*pd)) && ((*pb) < (*pa)))
  9. {
  10. aux.a=(*pa);
  11. *pa=*pb;
  12. *pb=aux.a;
  13. }
  14.  
  15. if((*pc)< (*pa) && (*pc)< (*pd) && (*pc) < (*pb))
  16. {
  17. aux.a=*pa;
  18. *pa=*pc;
  19. *pc=aux.a;
  20. }
  21.   if((*pd)< (*pa) && (*pd)< (*pc) && (*pd) < (*pb))
  22. {
  23. aux.a=*pa;
  24. *pa=*pd;
  25. *pd=aux.a;
  26. }
  27. }

Saludos!
756  Programación / Programación C/C++ / Re: Tutorial de archivos en lenguaje C. - en: 18 Septiembre 2016, 16:52 pm
Nunca lo he provado de esa forma prefiero manejarlo desde el SEEK_SET para hacerlo desde el inicio del archivo. lo que me gusta hacer es tener un contador para saber cual es el numero de registro actual y si quiero regrersar al que previamente lei lo que hago es

Código
  1. fseek(file, (contador-1)*sizeof(Idiomas), SEEK_SET);

Tendria que probar con la posición SEEK_CUR como lo mencionas.

Saludos!
757  Programación / Programación C/C++ / Re: Mejor forma de procesar una cadena de formato [Cantidad de memoria] en: 18 Septiembre 2016, 02:30 am
Eso me pasa por no leer la documentacion de la funcion  ;D  ;-) ;-) ;-)

Ya quedo mas optimizada mi funcion, muchas gracias  :xD
758  Programación / Programación C/C++ / Re: ¿Por qué se detiene en el segundo registro? en: 17 Septiembre 2016, 22:28 pm
El otro problema que veo es que estas usando la misma variable para iterar en todos los datos.

El "i" se reinicailiza cuando muestras datos y deberias de usar otra variable cuando queras agregar datos nuevos, como por ejemplo tener una variable que siempre guarde el numero del ultimo registro guardado en el arreglo.

Saludos!
759  Programación / Programación C/C++ / Re: Tutorial de archivos en lenguaje C. - en: 17 Septiembre 2016, 22:23 pm
No estoy seguro de cuales son los datos ingresados pero el problema puede ser el strcmp, ya que solo lo tienes mejor que cero y strcmp puede devolver -1, 0 o 1 segun sea menor, igual o mayor deberias de cambiarlo por !=

Código
  1. strcmp( tmp.ingles, idiomas.ingles ) != 0

Saludos!
760  Programación / Programación C/C++ / Re: Mejor forma de procesar una cadena de formato [Cantidad de memoria] en: 16 Septiembre 2016, 14:23 pm
Muchas gracias MAFUS segui mas o menos tu consejo y quedo asi el codigo:

Código
  1. void server_print(struct peticion *session,char *format,...) {
  2. int len = 0,count = 0,i,X;
  3. char *buffer = NULL;
  4. struct m_args *arreglo = NULL;
  5. va_list args;
  6. va_start(args, format);
  7. len = strlen(format);
  8. X = len;
  9. i = 0;
  10. while(i < len) {
  11. if(format[i] == '%') {
  12. i++;
  13. printf("Evaluando %c\n",format[i]);
  14. switch(format[i]) {
  15. case 's':
  16. arreglo = realloc(arreglo,sizeof(struct m_args)*(count+1));
  17. arreglo[count].valor = va_arg(args, void *);
  18. X+= strlen((char*)arreglo[count].valor);
  19. count++;
  20. break;
  21. case 'i':
  22. arreglo = realloc(arreglo,sizeof(struct m_args)*(count+1));
  23. arreglo[count].valor = va_arg(args, void *);
  24. X+=11;
  25. count++;
  26. break;
  27. case 'u':
  28. arreglo = realloc(arreglo,sizeof(struct m_args)*(count+1));
  29. arreglo[count].valor = va_arg(args, void *);
  30. X+=11;
  31. count++;
  32. break;
  33. case 'd':
  34. arreglo = realloc(arreglo,sizeof(struct m_args)*(count+1));
  35. arreglo[count].valor = va_arg(args, void *);
  36. X+=11;
  37. count++;
  38. break;
  39. case 'f':
  40. arreglo = realloc(arreglo,sizeof(struct m_args)*(count+1));
  41. arreglo[count].valor = va_arg(args, void *);
  42. X+=11;
  43. count++;
  44. break;
  45. case 'x':
  46. arreglo = realloc(arreglo,sizeof(struct m_args)*(count+1));
  47. arreglo[count].valor = va_arg(args, void *);
  48. X+=11;
  49. count++;
  50. break;
  51. case 'l':
  52. arreglo = realloc(arreglo,sizeof(struct m_args)*(count+1));
  53. arreglo[count].valor = va_arg(args, void *);
  54. X+=20;
  55. count++;
  56. break;
  57. case 'c':
  58. arreglo = realloc(arreglo,sizeof(struct m_args)*(count+1));
  59. arreglo[count].valor = va_arg(args, void *);
  60. X+=1;
  61. count++;
  62. break;
  63. case '%':
  64. X+=1;
  65. break;
  66. default:
  67. arreglo = realloc(arreglo,sizeof(struct m_args)*(count+1));
  68. arreglo[count].valor = va_arg(args, void *);
  69. X+=20;
  70. count++;
  71. break;
  72. }
  73. }
  74. i++;
  75. }
  76. free(arreglo);
  77. va_end(args);
  78. buffer = malloc(X+1);
  79. va_start(args, format);
  80. vsnprintf(buffer,X,format, args);
  81. va_end(args);
  82. buffer[X] = 0;
  83. len = strlen(buffer);
  84. printf("Longitud reservada %i vs Real %i\n",X,len);
  85. X = session->reply_length + len;
  86. session->reply = realloc(session->reply,X+1);
  87. memcpy(session->reply+ session->reply_length,buffer,len);
  88. session->reply[X] = 0;
  89. session->reply_length = X;
  90. free(buffer);
  91. }
  92.  

Resulta que podria llamar varias veces a va_start(args, format); y va_end...

Y asi solo itere sobre los argumentos viendo su tipo (Segun el formato de Cadena) reserve la memoria mas o menos necesitada por el tipo y volvi a llamar a va_start para posteriormente hacer un vsnprintf

Código
  1. vsnprintf(buffer,X,format, args);

Aun asi me faltan los formatos mas especializados pero eso con tiempo lo voy hacer, puse un default de +20 bytes por parametro "desconocido"



Saldos!
Páginas: 1 ... 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 [76] 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 ... 235
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines