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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: [1] 2 3
1  Programación / Programación C/C++ / Tamaño de buffer para proxy en C en: 23 Abril 2012, 01:50 am
Buenas, estoy haciendo un proxy cache en C, y estoy teniendo un problema con los buffers que estoy usando. Ya he logrado leer la solicitud una primera vez del navegador, así obtengo en el buffer una respuesta con el GET etc... luego le envío la solicitud al navegador, pero la respuesta que me da estoy segura de que está incompleta. Supongo que la razón es el tamaño del buffer. Acá está una parte del código:

Código
  1. int sockServidor, sockCliente, sockAceptado, codeLlamada;/*resul de syscall*/
  2. struct sockaddr_in ipCliente, ipServidor;
  3. char bufferSolicitud[256]; /*buffer para el stream de intercomunicación*/
  4. char bufferRespuesta[1024]; /*buffer para el stream de respuesta*/
  5. ...
  6. /*escuchando y aceptando solicitudes*/
  7. read(sockAceptado,bufferSolicitud,255); /*lee solicitud del navegador*/
  8. /*agrega host de solicitud a una cola*/
  9. write(sockAceptado,bufferSolicitud,255); /*envia solicitud al navegador*/
  10. read(sockAceptado,bufferRespuesta,1023); /*lee respuesta del navegador*/
  11. printf("%s\n",bufferRespuesta); /*imprimir respuesta en stdout*/
  12.  

Salida estándar:
Código:
cept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Proxy-Connection: keep-alive

Cookie: datr=USRyT0N-TnXDmXY9heJPVm4n; lu=ggUW7DJdGaM8HnSG2r9TZzVg; c_user=1684241979; xs=7%3AiTD4F4fsffwmaw%3A0%3A1332897093

Por el contenido de bufferRespuesta, me parece que el problema debe ser que el tamaño del buffer no es suficiente. Pero me sigue pareciendo extraño, pues cuando bufferRespuesta era de tamaño 256, también imprimía la misma respuesta.

Les agradezco mucho la ayuda de antemano. Primeramente, necesito saber cuál es el problema. En caso de ser el tamaño del buffer, les agradecería mucho si me ayudan a encontrar una solución.
2  Programación / Programación C/C++ / [C] pasar un entero a char* en: 2 Mayo 2011, 04:14 am
Buenas, espero que me puedan ayudar.
Mi duda es muy basica, pero como no tengo mucha experiencia pues no logro resolverla.

Estoy haciendo un juego en C con gtk+, y necesito que el valor (tipo int) de un spin button se vea en un label que esta a la par y que cambie cada vez que se escoge un nuevo valor para el spin button.

El problema que tengo es que ocupo de alguna manera de tomar el valor int y pasarlo a char *

hice este codigo, pero me da error por usar tan directamente el sprintf

Código:
	char * intAChar (char * str, int num)
{
return sprinf(str,"%d",num);
}

intento llamar ese codigo de esta manera

Código:
int spinValorInt;
spinValorInt = gtk_spin_button_get_value(GTK_SPIN_BUTTON(spinTamano));
labelTamano = gtk_label_new(intAChar("",spinValorInt));

Espero que alguien me pueda ayudar, gracias!
3  Programación / Programación C/C++ / Re: Duda de c++ en: 4 Abril 2011, 20:48 pm
umm puedes buscar mas info en google, al buscar ascii /r encontre que significa carriage return, osea, basicamente es el caracter ascii para return (enter o como newline). el carriage return existe desde las maquinas de escribir, describe el proceso en el cual se sostiene el papel y se devuelve (en caso de una computadora) el cursor al principio de la linea para luego aplicar el newline (osea baja a la siguiente linea.

en wikipedia ( ¬¬ puedes buscar ahi mas) dice que su uso es distinto, que a veces se usa como espaceador, otras  veces como /r/n como fin de linea etc, intenta buscar mas o buscar (?), ademas busca en tutos o manuales de c++, en algun lugar encontraras algun ejemplo que lo use y que describa el uso que se le esta dando

peace
4  Foros Generales / Foro Libre / Re: Ayudenme a elegir un lenguaje de programación!!! en: 2 Abril 2011, 02:45 am
Yo comencé con Scheme. Pero me parece que se debería aprender a programar (de acuerdo con mis preferencias personales) en varios paradigmas de programación, para al menos tener una idea de qué va cada uno...de cualquier manera, recomendaría:

C
C++
Prolog (seeh! programación lógica rlz)
Python
Common Lisp
5  Programación / ASM / portabilidad de GNU assembler Gas en: 18 Febrero 2011, 19:47 pm
Tenía una duda...

Hasta donde mi conocimiento llega, gas puede usar la sintáxis AT&T y la sintáxis Intel.

Mi duda es la siguiente:

Si hice un programa con la sintáxis Intel, en el sistema operativo Linux, y lo compilé, etc
Puedo correr el programa en Windows? Sino, bastaría con volverlo a compilar pero en Win?

La otra duda es que estuve viendo un poco de qué trataba MingW, que lo que intenta es integrar gas a windows. Eso significa que puedo programar con gas utilizando ambas sintáxis o solo la de intel?

Muchas gracas de antemano por su ayuda!
6  Programación / ASM / ensamblador dlx en: 27 Noviembre 2010, 01:11 am
Disculpen que escriba mi duda en esta área, es la única de ensamblador que he encontrado, asi que no me parece que haya otro mejor lugar.

tengo una duda en cuanto a transferencia de datos y operandos de memoria.

por el momento comprendo lo que significa en realidad este tipo de operandos de memoria
*Registro                    R3    
*Inmediato            #3    Rango de Valores Inmediatos afecta a la long de la Inst
*Desplazamiento    100(R1)    [100+R1] Rango Desp. afecta a la long de la Inst
*Indirecto              (R1)    M[R1]
*Indexado            (R1+R2)    M[R1+R2]
*Indice                    100(R2)[R3] =>    M[100+R2+R3·d]


Mi problema es que encontré una instrucción que utiliza otro método...
movl 4(ebx,edx),%ecx


entiendo que el 4 es el desplazamiento, pero no comprendo que quiere decir (ebx,edx)

Les agradezco de antemano por resolver mi pequeña duda XD

7  Informática / Hardware / Re: calculo de lineas de cache y bloques de ram en: 27 Noviembre 2010, 01:02 am
Wajajaja nopi, estaba estudiando para un exámen de Arquitectura de Computadores que tuve hoy =.=

Por dicha al final sí comprendí claramente la respuesta XD

Muchas gracias por haberme respondido  ;)
8  Informática / Hardware / Re: calculo de lineas de cache y bloques de ram en: 22 Noviembre 2010, 22:10 pm
umm tu respuesta tiene bastante lógica o.o

he estado estudiando el ejemplo, y logré llegar a ese resultado de la siguiente manera:

a. el tamaño de cada bloque es de #lineasDeCache * tamañoLinea (tamañoBloque=1024 bytes)
b. #DireccionesTotal = ramEnBytes / tamañoBloque (1073741824 bytes / 1024 bytes = 1048576)
c. Si se supone que el número de direcciones por bloque es 64 (en esta árte ya estoy medio insegura), y tengo  1048576 direcciones en total... #DireccionesTotal /#DireccionesBloque= #Bloques (1048576 / 64 = 16384)

De esta forma, también obtengo el resultado que debería obtener...y tiene un poco de lógica para mí, pero me cuesta estar segura de que sea la correcta y de que siempre funcione...

Entonces, sigo esperando otra respuesta. Al menos para saber si la de Sauruxum es la correcta.

Graciaaaaaaaaas XD
9  Informática / Hardware / calculo de lineas de cache y bloques de ram [SOLUCIONADO] en: 22 Noviembre 2010, 19:20 pm
tengo una pregunta, estoy estudiando para un examen pero no se si el ejemplo que nos dio el profesor esta correcto.

si tenemos esto:

RAM = 1GB
Cache = 1KB
Tamaño de linea de cache = 64B

entonces, uno hace el calculo de lineas de caché, lo cual nos dice que serían 16 líneas de caché. mi duda es cómo se puede calcular la cantidad de bloques de ram.

yo pensé que tenía que primero calcular el tamaño de cada bloque, que tiene 16 lineas de 64B, osea tiene 1024B y luego dividir la cantidad de bytes de la RAM (1073741824 bytes) entre el tamaño en bytes de cada bloque (1024B), y que eso nos retorna la cantidad de bloques en ram....pero a mi eso me dá 1048576 bloques, y el ejemplo que el profe nos dió retorna 16,384 bloques de ram...

me gustaría saber si mi cálculo es correcto, o si estoy cometiendo un error en alguna parte.

gracias por su tiempo XD
10  Programación / Bases de Datos / Re: insertar valor1 en tabla1 si valor1 existe en tabla2 en: 18 Octubre 2010, 00:39 am
jaja, ya logré resolver el problema u.uU no habia puesto ni el 0 para el valor de la columna autoincrease, ni habia puesto el endif. así quedó el código

Código
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `insertaSupervisor`
  2. (in idempleado integer)
  3.        if exists
  4.                (select *
  5.                from empleados
  6.                where empleados.idEmpleado=idempleado
  7.                )
  8.        then
  9.                if not exists
  10.                        (select *
  11.                        from supervisores
  12.                        where supervisores.idEmpleado=idempleado
  13.                        )
  14.                then
  15.                        insert into supervisores values (0,idempleado);
  16.                end if;
  17.        end if;
  18.  
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines