2008-09-29 11 views
11

¿Hay alguna plantilla/patrón/guía que pueda seguir para diseñar un servidor multiproceso? No puedo encontrar nada terriblemente útil en línea a través de mis búsquedas en Google.Patrones para servidor de red multiproceso en C#

Mi programa iniciará un hilo para escuchar conexiones usando TcpListener. Cada conexión de cliente será manejada por su propio hilo IClientHandler. El servidor ajustará al clienteHandler.HandleClient en un delegado, llamará a BeginInvoke y luego dejará de preocuparse por él.

También necesito poder cerrar limpiamente el hilo de escucha, que es algo que no encuentro muchos ejemplos en línea.

Supongo que una combinación de lock/AutoResetEvents/threading magic combinado con el async BeginAceptTcpClient y EndAcceptTcpClient me llevará hasta allí, pero cuando se trata de código de red, para mí todo está hecho. Así que tengo que creer que hay un patrón que puedo seguir y no confundirme por completo con la miríada de casos de esquinas con múltiples subprocesos que parece que nunca puedo perfeccionar.

Gracias.

Respuesta

12

Por extraño que parezca, puede encontrar algo en una Asignación de Ciencias de la Computación, CSC 512 Programming Assignment 4: Multi-Threaded Server With Patterns. Aunque es un vudú de C++, la teoría es bastante comprensible para alguien que puede hacer C#.

Altough puede obtener toda la lista de lecturas interesantes en la main page.

+0

Esto parece ser muy útil. ¡Gracias! Parece que pasaré un tiempo leyendo hoy. –

Cuestiones relacionadas