Tipos de socket
nodierInforme19 de Agosto de 2013
550 Palabras (3 Páginas)487 Visitas
1. QUE ES UN SOCKET
Un socket es un punto final de un enlace de comunicación de dos vías entre dos programas que se ejecutan a través de la red
2. TIPOS DE SOCKET
Orientado a conexión:
Establece un camino virtual entre servidor y cliente, fiable, sin pérdidas de información ni duplicados, la información llega en el mismo orden que se envía
El cliente abre una sesión en el servidor y este guarda un estado del cliente
El cliente utiliza la clase Socket
El servidor utiliza la clase ServerSocket
No orientado a conexión:
Envío de datagramas de tamaño fijo. No es fiable, puede haber pérdidas de información y duplicados, y la información puede llegar en distinto orden del que se envía.
No se guarda ningún estado del cliente en el servidor, por ello, es más tolerante a fallos del sistema.
Tanto el cliente como el servidor utilizan la clase DatagramSocket.
COMUNICACIÓN ENTRE CLIENTE Y SERVER
Con C en Unix/Linux, los pasos que debe seguir un programa servidor son los siguientes:
Apertura de un socket,
Avisar al sistema operativo
Avisar al sistema de que comience a atender dicha conexión de red.
Pedir y aceptar las conexiones de clientes al sistema operativo
Escribir y recibir datos del cliente, por medio de las funciones write() y read(),
Cierre de la comunicación y del socket, por medio de la función close(),
COMUNICACIÓN ENTRE CLIENTE Y SERVER
Los pasos que debe seguir un programa cliente son los siguientes:
Apertura de un socket, como el servidor, por medio de la función socket()
Solicitar conexión con el servidor por medio de la función connect().
Escribir y recibir datos del servidor por medio de las funciones write() y read().
Cerrar la comunicación por medio de close().
¿QUE ES UN THREAD
Es una característica del OS que permite a una aplicaciones realizar varias tareas a la vez.
Un thread no puede ejecutarse por sí mismo, ha de hacerlo dentro de un programa.
¿QUE GANAMOS?
Conseguimos concurrencia entre procesos y también dentro de un mismo proceso.
También podemos conseguir paralelismo si disponemos de una arquitectura
Multiprocesador
DIFERENCIA ENTRE THREADS Y PROCESOS
Los hilos se distinguen de los tradicionales procesos
En que los procesos son generalmente independientes, llevan bastante información de estados, e interactúan sólo a través de mecanismos de comunicación dados por el sistema.
Por otra parte, muchos hilos generalmente comparten otros recursos de forma directa. En muchos de los sistemas operativos que dan facilidades a los hilos, es más rápido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro.
Implementaciones
Hay dos grandes categorías en la implementación de hilos:
Hilos a nivel de usuario.
Hilos a nivel de kernel.
Un thread tiene:
Nombre
Prioridad
ESTADOS DE UN THREAD
Cambio de estados
Creación: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo puede crear otros hilos dentro del mismo proceso, proporcionando un puntero de instrucción y los argumentos del nuevo hilo. El hilo tendrá su propio contexto y su propio espacio de la columna, y pasara a la final de los listos.
Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus registros de usuario, contador de programa y punteros de pila). Ahora el procesador podrá pasar a ejecutar otro hilo que esté en la final de los Listos mientras el anterior permanece bloqueado.
Desbloqueo: Cuando el suceso
...