Tema 2: Interacción Mediante Mensajes

41
Puntos Desarrollados en la Sesión Anterior La Primitiva select Servidores Concurrentes Monoproceso Servidores Multiprotocolo y Superservidores El Interfaz de Programación Winsock Resumen Tema 2: Interacción Mediante Mensajes PAD - Curso 2005/06 E. Domínguez Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Octubre de 2005 E. Domínguez Tema 2

Transcript of Tema 2: Interacción Mediante Mensajes

Page 1: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Tema 2: Interacción Mediante MensajesPAD - Curso 2005/06

E. Domínguez

Departamento de Tecnologías y Sistemas de InformaciónEscuela Superior de Informática

Universidad de Castilla - La Mancha

Octubre de 2005

E. Domínguez Tema 2

Page 2: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Índice

1 La Primitiva select

2 Servidores Concurrentes Monoproceso

3 Servidores Multiprotocolo y Superservidores

4 El Interfaz de Programación Winsock

E. Domínguez Tema 2

Page 3: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Tema 2: Interacción mediante Mensajes

Sesión 6:Otros Tópicos de Programación con Sockets

E. Domínguez Tema 2

Page 4: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Resumen de Contenidos de la Sesión Anterior

En la sesión anterior hemos vistoClases de servidoresAlgoritmos para los servidores iterativosAlgoritmos para los servidores concurrentes multiproceso

E. Domínguez Tema 2

Page 5: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Índice

1 La Primitiva select

2 Servidores Concurrentes Monoproceso

3 Servidores Multiprotocolo y Superservidores

4 El Interfaz de Programación Winsock

E. Domínguez Tema 2

Page 6: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

La Primitiva select - Parte 1

i n t s e l e c t ( i n t n , fd_se t ∗ readfds ,fd_se t ∗wr i t e fds , fd_se t ∗exceptfds ,struct t imeva l ∗ t imeout ) ;

n: El valor del descriptor más alto de los utilizados en losdistintos conjuntos de los siguientes argumentos más 1readfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para lecturawritefds: Un puntero a un conjunto de descriptores quedebe ser vigilado para escrituraexceptfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para situaciones de excepción

E. Domínguez Tema 2

Page 7: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

La Primitiva select - Parte 1

i n t s e l e c t ( i n t n , fd_se t ∗ readfds ,fd_se t ∗wr i t e fds , fd_se t ∗exceptfds ,struct t imeva l ∗ t imeout ) ;

n: El valor del descriptor más alto de los utilizados en losdistintos conjuntos de los siguientes argumentos más 1readfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para lecturawritefds: Un puntero a un conjunto de descriptores quedebe ser vigilado para escrituraexceptfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para situaciones de excepción

E. Domínguez Tema 2

Page 8: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

La Primitiva select - Parte 1

i n t s e l e c t ( i n t n , fd_se t ∗ readfds ,fd_se t ∗wr i t e fds , fd_se t ∗exceptfds ,struct t imeva l ∗ t imeout ) ;

n: El valor del descriptor más alto de los utilizados en losdistintos conjuntos de los siguientes argumentos más 1readfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para lecturawritefds: Un puntero a un conjunto de descriptores quedebe ser vigilado para escrituraexceptfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para situaciones de excepción

E. Domínguez Tema 2

Page 9: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

La Primitiva select - Parte 1

i n t s e l e c t ( i n t n , fd_se t ∗ readfds ,fd_se t ∗wr i t e fds , fd_se t ∗exceptfds ,struct t imeva l ∗ t imeout ) ;

n: El valor del descriptor más alto de los utilizados en losdistintos conjuntos de los siguientes argumentos más 1readfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para lecturawritefds: Un puntero a un conjunto de descriptores quedebe ser vigilado para escrituraexceptfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para situaciones de excepción

E. Domínguez Tema 2

Page 10: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

La Primitiva select - Parte 1

i n t s e l e c t ( i n t n , fd_se t ∗ readfds ,fd_se t ∗wr i t e fds , fd_se t ∗exceptfds ,struct t imeva l ∗ t imeout ) ;

n: El valor del descriptor más alto de los utilizados en losdistintos conjuntos de los siguientes argumentos más 1readfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para lecturawritefds: Un puntero a un conjunto de descriptores quedebe ser vigilado para escrituraexceptfds: Un puntero a un conjunto de descriptores quedebe ser vigilado para situaciones de excepción

E. Domínguez Tema 2

Page 11: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

La Primitiva select - Parte 2

timeout; Un puntero a una estructura de tipo timeval paraindicar cuánto tiempo como máximo se desea que selectpermanezca boqueado si no hay cambios de estado en lossockets de los conjuntos a vigilarSe devuelve el número de descriptores en los que huboalguna actividad, o cero si se superó el tiempo límite y -1en caso de error. Los conjuntos de sockets, a la salida deselect son modificados y contienen sólo los sockets en losque ha habido alguna actividad

E. Domínguez Tema 2

Page 12: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

La Primitiva select - Parte 2

timeout; Un puntero a una estructura de tipo timeval paraindicar cuánto tiempo como máximo se desea que selectpermanezca boqueado si no hay cambios de estado en lossockets de los conjuntos a vigilarSe devuelve el número de descriptores en los que huboalguna actividad, o cero si se superó el tiempo límite y -1en caso de error. Los conjuntos de sockets, a la salida deselect son modificados y contienen sólo los sockets en losque ha habido alguna actividad

E. Domínguez Tema 2

Page 13: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Índice

1 La Primitiva select

2 Servidores Concurrentes Monoproceso

3 Servidores Multiprotocolo y Superservidores

4 El Interfaz de Programación Winsock

E. Domínguez Tema 2

Page 14: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Servidores Concurrentes Monoproceso

Se puede usar select para manejar la concurrencia que esnecesario mantener en algunos servidores sin crearprocesos suplementariosEsa solución puede usarse en servicios sobre TCP en losque la conversación con el cliente puede ser larga (esoimpide que el servicio pueda darse iterativamente) pero laformación de cada respuesta del servidor lleva pocotiempo

E. Domínguez Tema 2

Page 15: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Servidores Concurrentes Monoproceso

Se puede usar select para manejar la concurrencia que esnecesario mantener en algunos servidores sin crearprocesos suplementariosEsa solución puede usarse en servicios sobre TCP en losque la conversación con el cliente puede ser larga (esoimpide que el servicio pueda darse iterativamente) pero laformación de cada respuesta del servidor lleva pocotiempo

E. Domínguez Tema 2

Page 16: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Algoritmo de un Servidor Concurrente MonoprocesoOrientado a Conexión - Parte 1

Algoritmo - Parte 1

1: Crear un socket (socket maestro)2: Enlazarlo a la dirección en la que vaya a prestarse el

servicio3: Poner el socket a la escucha4: Incluir el socket maestro en un conjunto de descriptores

activos

E. Domínguez Tema 2

Page 17: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Algoritmo de un Servidor Concurrente MonoprocesoOrientado a Conexión - Parte 2

Algoritmo - Parte 21: loop2: Llamar a select con una copia de ese conjunto de

descriptores activos a vigilar en lectura3: if Ha habido actividad en el socket maestro then4: Manejar la actividad en el socket maestro5: end if6: if Ha habido alguna actividad en algún socket esclavo

then7: Manejar la actividad en el socket esclavo8: end if9: end loop

E. Domínguez Tema 2

Page 18: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Algoritmo de un Servidor Concurrente MonoprocesoOrientado a Conexión - Parte 3

Manejar la actividad en el socket maestro1: Aceptar nueva conexión de un cliente creando un socket

esclavo2: Incluir el socket esclavo en el conjunto de descriptores

activos

E. Domínguez Tema 2

Page 19: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Algoritmo de un Servidor Concurrente MonoprocesoOrientado a Conexión - Parte 4

Manejar la actividad en el socket esclavo1: Tratar el servicio2: if La petición fue cerrar la conexión then3: Cerrar el socket esclavo4: Eliminarlo del conjunto de descriptores activos5: end if

E. Domínguez Tema 2

Page 20: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Índice

1 La Primitiva select

2 Servidores Concurrentes Monoproceso

3 Servidores Multiprotocolo y Superservidores

4 El Interfaz de Programación Winsock

E. Domínguez Tema 2

Page 21: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Servidores Multiprotocolo

Organización del código

La técnica anterior puede usarse para manejar unconjunto de dos sockets maestros, uno para cadaprotocolo de transporte de un determinado servicioCuando se registre actividad en uno de los sockets seprocederá como en el caso anterior para atender lapetición del cliente creando una nueva conexión en el casode TCP y atendiendo al cliente sobre ella, o, en el casoUDP atendiendo directamente la petición del clienteEn ambos casos puede ser creado un proceso si se deseaatender el diálogo con el cliente concurrentemente

E. Domínguez Tema 2

Page 22: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Servidores Multiprotocolo

Organización del código

La técnica anterior puede usarse para manejar unconjunto de dos sockets maestros, uno para cadaprotocolo de transporte de un determinado servicioCuando se registre actividad en uno de los sockets seprocederá como en el caso anterior para atender lapetición del cliente creando una nueva conexión en el casode TCP y atendiendo al cliente sobre ella, o, en el casoUDP atendiendo directamente la petición del clienteEn ambos casos puede ser creado un proceso si se deseaatender el diálogo con el cliente concurrentemente

E. Domínguez Tema 2

Page 23: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Servidores Multiprotocolo

Organización del código

La técnica anterior puede usarse para manejar unconjunto de dos sockets maestros, uno para cadaprotocolo de transporte de un determinado servicioCuando se registre actividad en uno de los sockets seprocederá como en el caso anterior para atender lapetición del cliente creando una nueva conexión en el casode TCP y atendiendo al cliente sobre ella, o, en el casoUDP atendiendo directamente la petición del clienteEn ambos casos puede ser creado un proceso si se deseaatender el diálogo con el cliente concurrentemente

E. Domínguez Tema 2

Page 24: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Superservidores

Organización del código

La técnica anterior puede usarse también para manejar unconjunto de sockets maestros, cada uno asociado a unservicio y a un protocolo de transporteCuando se registre actividad en uno de los sockets seprocederá como en el caso anterior para atender lapetición del cliente creando una nueva conexión en el casode TCP y atendiendo al cliente sobre ella, o, en el casoUDP atendiendo directamente la petición del clienteEn ambos casos puede ser creado un proceso si se deseaatender el diálogo con el cliente concurrentemente

E. Domínguez Tema 2

Page 25: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Superservidores

Organización del código

La técnica anterior puede usarse también para manejar unconjunto de sockets maestros, cada uno asociado a unservicio y a un protocolo de transporteCuando se registre actividad en uno de los sockets seprocederá como en el caso anterior para atender lapetición del cliente creando una nueva conexión en el casode TCP y atendiendo al cliente sobre ella, o, en el casoUDP atendiendo directamente la petición del clienteEn ambos casos puede ser creado un proceso si se deseaatender el diálogo con el cliente concurrentemente

E. Domínguez Tema 2

Page 26: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Superservidores

Organización del código

La técnica anterior puede usarse también para manejar unconjunto de sockets maestros, cada uno asociado a unservicio y a un protocolo de transporteCuando se registre actividad en uno de los sockets seprocederá como en el caso anterior para atender lapetición del cliente creando una nueva conexión en el casode TCP y atendiendo al cliente sobre ella, o, en el casoUDP atendiendo directamente la petición del clienteEn ambos casos puede ser creado un proceso si se deseaatender el diálogo con el cliente concurrentemente

E. Domínguez Tema 2

Page 27: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Índice

1 La Primitiva select

2 Servidores Concurrentes Monoproceso

3 Servidores Multiprotocolo y Superservidores

4 El Interfaz de Programación Winsock

E. Domínguez Tema 2

Page 28: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

El Interfaz de Programación Winsock

ParticularidadesEs una adaptación del interfaz BSD Socket a lascaracterísticas del S. O. WindowsLa versión winsock 1.0 ha sido la más utilizada, aunque laversión 2.0 es la actualmente vigenteLos prototipos de las llamadas síncronas al interfaz sonligeramente diferentes para las llamadas síncronas, debidofundamentalmente a que los descriptores de archivo y losde los sockets no son del mismo tipo

E. Domínguez Tema 2

Page 29: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

El Interfaz de Programación Winsock

ParticularidadesEs una adaptación del interfaz BSD Socket a lascaracterísticas del S. O. WindowsLa versión winsock 1.0 ha sido la más utilizada, aunque laversión 2.0 es la actualmente vigenteLos prototipos de las llamadas síncronas al interfaz sonligeramente diferentes para las llamadas síncronas, debidofundamentalmente a que los descriptores de archivo y losde los sockets no son del mismo tipo

E. Domínguez Tema 2

Page 30: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

El Interfaz de Programación Winsock

ParticularidadesEs una adaptación del interfaz BSD Socket a lascaracterísticas del S. O. WindowsLa versión winsock 1.0 ha sido la más utilizada, aunque laversión 2.0 es la actualmente vigenteLos prototipos de las llamadas síncronas al interfaz sonligeramente diferentes para las llamadas síncronas, debidofundamentalmente a que los descriptores de archivo y losde los sockets no son del mismo tipo

E. Domínguez Tema 2

Page 31: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

El Interfaz de Programación Winsock. Cont.

ParticularidadesLas llamadas síncronas funcionan de modo totalmenteanálogo a las del interfaz BSDwinsock contiene llamadas asíncronas que se adaptanespecialmente a las características de Windows

E. Domínguez Tema 2

Page 32: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

El Interfaz de Programación Winsock. Cont.

ParticularidadesLas llamadas síncronas funcionan de modo totalmenteanálogo a las del interfaz BSDwinsock contiene llamadas asíncronas que se adaptanespecialmente a las características de Windows

E. Domínguez Tema 2

Page 33: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Llamadas Asíncronas: WSAAsyncGetHostByName.Parte 1

HANDLE WSAAsyncGetHostByName(HWND hWnd,unsigned i n t wMsg,const char∗ name,char∗ buf ,i n t buf len) ;

E. Domínguez Tema 2

Page 34: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Llamadas Asíncronas: WSAAsyncGetHostByName.Parte 2

hWnd: El manejador de ventana de la ventana que recibiráel mensaje de respuestawMsg: Tipo de mensaje que se recibirá cuando secomplete la peticiónneme: Un puntero a un string con el nombre del hostbuf: Un puntero a un buffer donde se depositará laestructura de tipo hostent que contendrá la respuestabuflen: Tamaño del buffer apuntado por buf

E. Domínguez Tema 2

Page 35: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Llamadas Asíncronas: WSAAsyncGetHostByName.Parte 2

hWnd: El manejador de ventana de la ventana que recibiráel mensaje de respuestawMsg: Tipo de mensaje que se recibirá cuando secomplete la peticiónneme: Un puntero a un string con el nombre del hostbuf: Un puntero a un buffer donde se depositará laestructura de tipo hostent que contendrá la respuestabuflen: Tamaño del buffer apuntado por buf

E. Domínguez Tema 2

Page 36: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Llamadas Asíncronas: WSAAsyncGetHostByName.Parte 2

hWnd: El manejador de ventana de la ventana que recibiráel mensaje de respuestawMsg: Tipo de mensaje que se recibirá cuando secomplete la peticiónneme: Un puntero a un string con el nombre del hostbuf: Un puntero a un buffer donde se depositará laestructura de tipo hostent que contendrá la respuestabuflen: Tamaño del buffer apuntado por buf

E. Domínguez Tema 2

Page 37: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Llamadas Asíncronas: WSAAsyncGetHostByName.Parte 2

hWnd: El manejador de ventana de la ventana que recibiráel mensaje de respuestawMsg: Tipo de mensaje que se recibirá cuando secomplete la peticiónneme: Un puntero a un string con el nombre del hostbuf: Un puntero a un buffer donde se depositará laestructura de tipo hostent que contendrá la respuestabuflen: Tamaño del buffer apuntado por buf

E. Domínguez Tema 2

Page 38: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Llamadas Asíncronas: WSAAsyncGetHostByName.Parte 2

hWnd: El manejador de ventana de la ventana que recibiráel mensaje de respuestawMsg: Tipo de mensaje que se recibirá cuando secomplete la peticiónneme: Un puntero a un string con el nombre del hostbuf: Un puntero a un buffer donde se depositará laestructura de tipo hostent que contendrá la respuestabuflen: Tamaño del buffer apuntado por buf

E. Domínguez Tema 2

Page 39: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Llamadas Asíncronas: WSAAsyncGetHostByName.Parte 3

Se devuelve un manejador que servirá para identificar elmensaje de respuesta o un valor NULL para indicar que lallamada no ha podido ser cursadaSe recibirá más tarde en la ventana hWnd un mensaje conidentificador wMsg, que en su palabra corta contendrá elvalor de retorno de tipo HANDLE. En la palabra largacontendrá la longitud de la respuesta depositada en buf obien una indicación de error

E. Domínguez Tema 2

Page 40: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Llamadas Asíncronas: WSAAsyncGetHostByName.Parte 3

Se devuelve un manejador que servirá para identificar elmensaje de respuesta o un valor NULL para indicar que lallamada no ha podido ser cursadaSe recibirá más tarde en la ventana hWnd un mensaje conidentificador wMsg, que en su palabra corta contendrá elvalor de retorno de tipo HANDLE. En la palabra largacontendrá la longitud de la respuesta depositada en buf obien una indicación de error

E. Domínguez Tema 2

Page 41: Tema 2: Interacción Mediante Mensajes

Puntos Desarrollados en la Sesión AnteriorLa Primitiva select

Servidores Concurrentes MonoprocesoServidores Multiprotocolo y Superservidores

El Interfaz de Programación WinsockResumen

Resumen de la Sesión

En esta sesión hemos vistoUso de la primitiva selectServidores concurrentes monoprocesoCaracterísticas del interfaz winsock

E. Domínguez Tema 2