La implementación del servidor es bastante intuitiva:
- hacemos bind,
- esperamos recibir peticiones,
- para cada petición devolvemos una respuesta.
-
-
La implementación del cliente es la que cambia bastante. Si intentamos enviar un mensaje usando sockets TCP/IP y no se puede establecer conexión con el servidor, del lado del cliente detectamos este problema... Por lo tanto, el envío se realiza correctamente, o se produce algún error de conexión (incluyendo la posibilidad de utilizar timeouts).
Pero con ZeroMQ, si el servidor NO está ejecutándose y el cliente envía un mensaje, el cliente se bloquea hasta que se pueda contactar el servidor y realizar el envío.
-
-
Para evitar que el cliente se bloquee, no hay posibilidad de usar un "timeout", pero podemos implementar algo parecido usando Poll().
-
-
Con esta segunda implementación, el cliente no bloquea si el servidor está caído.
No hay comentarios:
Publicar un comentario