lunes, 11 de febrero de 2013

Tarea 2: protocolo

Se nos pide diseñar, implementar y comprobar experimentalmente y documentar un protocolo simple a nivel aplicación, utilizando sockets UDP en donde múltiples clientes hagan alguna función en un servidor.

Para esta entrada, realice unos códigos en Python en donde por medio de un servidor, abre una ventana en donde tenemos una imagen, y los clientes pueden controlar directamente esa imagen mandando comandos de 4 bytes por medio de sockets UDP.

En ambos códigos utilizo los siguientes comandos de 4 bytes, los empaqueto y los mando del cliente al servidor.
  • INIT
    • Este comando inicializa al momento de capturar un nuevo cliente en el servidor, se selecciona cuantas personas van a poder cambiar la imagen según cuantos INIT entraron al principio y el valor dado.
  • EXIT
    • Este comando sale de la aplicación y desconecta el socket.
  • GRIS
    • Este comando hace que la imagen se ponga en un estado de escala de grises.
  • ORIG
    • Este comando deshace las acciones anteriores y regresa a la imagen original.
  • PROM
    • Este comando saca un promedio de los pixeles vecinos, creando un efecto borroso.
  • UMXX
    • El comando umbral corresponde a un string de 4 bytes en donde:
      • UM: indica que se va a realizar un umbral
      • XX: son números parseados y anexados al comando dependiendo del valor del umbral escogido por el cliente mediante un slider.

Capturas de pantalla.


Comando PROM genera un efecto de borrado

Regresa a Original enviando comando ORIG

Genera un efecto de grises con el comando GRIS

Al momento de dar clic a umbral abre un slider en donde seleccionas la intensidad del umbral, se agrega al comando en los 4 bytes.


Diagramas de procedimiento.



Código servidor.



Código cliente.



Esto sería todo para la tarea 2, implementar un protocolo, espero que quede claro y si tienen alguna duda, favor de hacermela saber.

1 comentario:

  1. Me hubiera gustado tener definido qué en sí ocurre en situaciones de múltiples clientes. 9 pts.

    ResponderEliminar