Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - SDCC

#11
Buenas a todos, estoy haciendo una práctica que simplemente es un servidor que despacha solicitudes de archivos , al estilo de un servidor Apache. Mi problema es que me gustaría que no fuera posible navegar fuera de esa carpeta al estilo de peticiones de archivos "../Otra_carpeta/Archivo_privado" .Si alguién sabe de manera mas detallada como soluciona dicho problema algunos servidores como Apache le agradecería que lo compartiera.

Algunas soluciones que se me ocurrieron fue:

  • 1. Posiblemente la mas sencilla. Crear un nuevo usuario con permisos de lectura solo dentro de la carpeta publica . Aunque en este punto estoy considerando que puedo crear un demonio y dicho demonio va tener los respectivos permisos que su usuario oriden (Corriganme si esto no es así)
  • 2. Usar Incron para generar eventos con referencia a la carpeta publica de manera que el servicio pueda ser notificado de cualquier eliminacion/agregación de un nuevo archivo en la carpeta  para que el servicio pueda tener un conjunto de los archivos disponibles, es decir, aquellos que se encuentran en la carpeta pública. Finalmente con cada petición de un archivo primeramente se verificaria si el recursos esta dentro de este conjunto de archivos disponibles(posiblemente con ayuda de su hash para una busqueda rapida)  
#12
Cita de: MinusFour en 30 Octubre 2019, 14:39 PM
Quizás la membrana está dañada. No se si el material se endurezca con el frío y haga más rígida la membrana pero a 12 grados celsius lo dudo mucho. Si vives en un lugar muy húmedo ¿Quizás tengas algún daño por condensación?

Los teclados de laptop generalmente son algo difícil de reparar.

Un gran descuido de mi parte. Tenías razon sobre la condensación, digamos que por algunas razones cuando me bañaba no habia una salida al exterior por lo cual en algunas ocasiones el vapor se acumulaba en la habitación donde tengo la computadora y al parecer esto ocasionaba el problema.

Realmente me estaba preocupado mas por el hecho de que creara humedad en las paredes que por otra cosa jaja.
#13
Hardware / Fallo de teclas al encedido de laptop.
29 Octubre 2019, 21:26 PM
Buenas a todos, desde hace unos dias mi laptop ha presentado el problema de que al encender o volver de una suspension , algunas de las teclas no funcionan del todo bien. En la mayoría de los casos lo que ocurre es que algunas teclas aisladas como 'r' y 'i' funcionan bien solo que siempre se agrega un desplazamiento a la izquierda, es decir, como si se pulsara la tecla de '<-' y despues 'i' o 'r'. La laptop no ha tenido ningún accidente al estilo de que haya tenido contacto con el agua o algun otro liquido sin embargo el problema se empezo a presentar desde que empezo a bajar un poco la tempetura en mi ciudad, alrededor de los 12 grados Celsius.

Finalmente el problema se resuelve despues de unos minutos de uso pero el fallo siempre se repite con las mismas teclas 'i'-'r', ademas de que siempre produce el mismo error. ¿ Alguien conoce alguna solución o que lo puede estar causando ?
#14
Redes / Re: Campo Protocolo de cabecera IP.
27 Octubre 2019, 00:46 AM
Cita de: engel lex en 26 Octubre 2019, 23:53 PM
no entendi realmente la pregunta, el campo protocolo sirve para identificar el tipo de paquete sobre la marcha, los routers hoy dia deben ener un delay super bajo así que tomar todo el paquete pasarlo a buffer y luego trabajar con el es inviable, es mas rapido leer sobre la marcha y si es valido empezar a aenviarlo incluso antes de recibirlo por completo...

no se si eso responde a tu pregunta...

Gracias por tu respuesta. Me referia mas bien al contenido que tiene, es decir, cuando el paquete es orientado a la conexion(generalmente TCP) este campo tiene el valor 6, cuando es UDP tiene el valor 1,etc...  pero segun algunas referencias que he visto dicen que cuando es "IP en IP (encapsulación)   " tiene el valor de 4. Fuente: https://es.wikipedia.org/wiki/Anexo:N%C3%BAmeros_de_protocolo_IP. ¿ Esto cuando se da? . ¿ Que tipos de paquetes ponen como protocolo IP en su propia cabecera?
#15
Redes / Campo Protocolo de cabecera IP.
26 Octubre 2019, 23:34 PM
Buenas a todos, estaba checando las diferencias entre TCP y UDP en la capa de transporte y vi que dichos protocolos estan vinculados a un entero que es colocado en la cabecera del paquete formado en la capa de RED(IP). Observe que existe unos valores destinados para el protocolo IP y IPv6 pero ¿ Cómo esta eso?.

Creo entender que todos los paquetes indepedientemente si son UDP,TCP,etc... Van a caer al protocolo IP en la capa de red y cada uno va asignar un valor entero en el campo de PROTOCOLO en dicha cabecera pero que sentido tiene que dentro de la cabecera IP se de la posibilidad de poner como protocolo IP o IPv6 (El mismo).  ¿ Cuáles son los casos en donde  este campo es asginado como IP O IPv6?
#16
Redes / RPC's y Sockets
22 Octubre 2019, 23:03 PM
Buenas a todos, llevo un lapso de tiempo viendo aplicaciones que hacen uso de sockets y tengo una noción relativamente superficial de los sockets y como es su manejo a nivel de programacion. Mi pregunta va en cuestión de las diferencias con RPC.

He visto y manejado un poco sobre el ONC RPC y su funcionamiento. Vi como principal diferencia la abstracción del llamar una función remota (como su mismo nombre dice) a diferencia de los sockets en donde no se presenta ese tipo de facilidades y todo se hace en un nivel aparentemente mas 'primitivo' .

Mis principales preguntas es...

  • 1. He visto muy poca información de los RPC a comparación de la de los sockets. ¿Los Sockets predominan en uso para comunicación entre procesos remotos?
  • 2. A lo que he visto la abstracción de los RPC permite realizar aplicaciones tal vez mas complejas con un menor esfuerzo a comparacion de los sockets. ¿Esta es su mayor ventaja frente a los sockets?
  • 3 Finalmente en que tipo de aplicaciones se prefiere los RPC frente a los sockets y viceversa
#17
Buenas a todos, encontre un ejemplo del problema de comunicacion en el libro de Tanenbaum que es el siguiente:


#include <stdio.h>
#include <pthread.h>
#define MAX 100
pthread_mutex_t el_mutex;
pthread_cond_t condc,condp;
int buffer = 0;

void *productor(void *ptr){
    int i;
    for(i = 1; i <= MAX;i++){
        pthread_mutex_lock(&el_mutex);
        while(buffer != 0 ) pthread_cond_wait(&condp,&el_mutex);
        printf("Productor....\n");
        buffer = i;
        pthread_cond_signal(&condc);
        pthread_mutex_unlock(&el_mutex);
    }
    pthread_exit(0);
}


void *consumidor(void *ptr){
    int i;
    for(i = 1; i <= MAX;i++){
        pthread_mutex_lock(&el_mutex);
        while(buffer == 0 ) pthread_cond_wait(&condc,&el_mutex);
        printf("Consumidor....\n");
        buffer = 0;
        pthread_cond_signal(&condp);
        pthread_mutex_unlock(&el_mutex);
    }
    pthread_exit(0);

}


int main(){
    pthread_t pro,con;
    pthread_mutex_init(&el_mutex,0);
    pthread_cond_init(&condc,0);
    pthread_cond_init(&condp,0);
    pthread_create(&con,0,consumidor,0);
    pthread_create(&pro,0,productor,0);
    pthread_join(pro,0);
    pthread_join(con,0);
    pthread_cond_destroy(&condc);
    pthread_cond_destroy(&condp);
    pthread_mutex_destroy(&el_mutex);
    return 0;

}


Todo va bien hasta aqui.Mi pregunta es si tiene sentido esta dos lineas:

        while(buffer != 0 ) pthread_cond_wait(&condp,&el_mutex);



        while(buffer == 0 ) pthread_cond_wait(&condc,&el_mutex);


¿Es necesario poner la condicion en un while ?. Hasta donde yo entiendo el problema podria ser resuelto sustituyendo el while por un if y lo he verificado en algunas pruebas pero no se si algun detalle se me esta escapando. Creo que el while seria util cuando se tuviera mas de un consumidor o productor pero en este caso en concreto en el cual solo es 1-1 , ¿Tiene sentido?
#18
Buenas a todos, estoy profundizando en la practica de los temas de comunicación entre procesos e hilos y me tope con 2 necesidades:

  • Hacer uso de memoria compartida
  • Hacer uso de semaforos

Encontre que ambas necesidades pueden ser proporcionadas por una familia de funciones de tanto el estandar POSIX como de aquellas heredadas de SYSTEM V,por lo tanto me genera la duda  ¿  es necesario aprender las viejas funciones del SYSTEM V?, o es mas que necesario con las del estandar de POSIX.

He visto que algunas diferencias tales como que en los semaforos de SYSTEM V se tiene mas control del incremento/decremento del semaforo,etc...  ¿Pero algunas de estas cualidades de las funciones de SYSTEM V pueden ser obligatorias para un cierto problema? o puede ser completamente sustituidas con las del estandar POSIX.
#19
Cita de: SDCC en 18 Septiembre 2019, 04:17 AM
1. Como hago que el cliente este a la espera de recibir un mensaje del servidor y a la vez este a la espera de que no se llame la funcion que es generada al dar click en en un boton de "Enviar" para enviar un nuevo mensaje por parte del mismo cliente.

He visto el metodo SELECT de PYTHON que me permite estar a la espera de dos flujos de datos como STDIN y el socket pero en este caso concreto seria el SOCKET y una funcion que se llama cuando se da click en un boton para enviar el mensaje.He estado viendo si hay algo relacionado eso en TCL/TK pero no he encontrado demasiado al respecto.

Primer punto resuelto. Descuido mio XDD, lo pude resolver asociando un evento con el socket que estaba vinculado a la comunicacion con el servidor con el comando 'fileevent'.

Aun me hace falta mejorar el segundo punto:
Citar
2. En caso de que se envie un mensaje a un grupo o cliente no existente , que tipo de caracter podria enviar al cliente que origino el mensaje para darle a entender que el usuario o grupo al cual mando el mensaje no existe. Tal vez podria enviar una combinacion de caracteres pero de que manera me aseguro que esos caracteres no pueden ser parte de un mensaje que se esten pasando entre los usuarios.

Agradeceria si me ayudaran a dar solucion a estos dos problemas, o si me podrian presentar una alternativa que se suela usar para estos casos.

Alguien me podria indicar que caracter en especifico se utiliza por lo general o que tipos de caracteres?
#20
Buenas a todos, tengo que dar solucion a un problema de un chat grupal con el modelo cliente/servidor dentro del lenguaje TCL y he creado de manera general una estructura en donde existe un servidor central al cual se conectan todos los clientes y los va agrupando en grupos de manera que cada usuario elige:

1. A que grupo pertenecer( En caso de no existir se crea)

2. Cual va ser su identificador dentro del grupo.
Mi modelo plantea que el servidor reciba estos datos al principio de la comunicacion y despues el haga la gestion de ellos de manera que pueda existir comunicacion entre usuarios de distintos grupos con ayuda del ID del grupo y el ID del usuario al que quiere comunicarse. Mis problemas comienzan con los siguientes puntos:

1. Como hago que el cliente este a la espera de recibir un mensaje del servidor y a la vez este a la espera de que no se llame la funcion que es generada al dar click en en un boton de "Enviar" para enviar un nuevo mensaje por parte del mismo cliente.

He visto el metodo SELECT de PYTHON que me permite estar a la espera de dos flujos de datos como STDIN y el socket pero en este caso concreto seria el SOCKET y una funcion que se llama cuando se da click en un boton para enviar el mensaje.He estado viendo si hay algo relacionado eso en TCL/TK pero no he encontrado demasiado al respecto.

2. En caso de que se envie un mensaje a un grupo o cliente no existente , que tipo de caracter podria enviar al cliente que origino el mensaje para darle a entender que el usuario o grupo al cual mando el mensaje no existe. Tal vez podria enviar una combinacion de caracteres pero de que manera me aseguro que esos caracteres no pueden ser parte de un mensaje que se esten pasando entre los usuarios.

Agradeceria si me ayudaran a dar solucion a estos dos problemas, o si me podrian presentar una alternativa que se suela usar para estos casos.