Pregunta

¿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.

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

También necesito poder cerrar de manera limpia 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 combinada con el async BeginAceptTcpClient y EndAcceptTcpClient me llevará hasta allí, pero en lo que respecta al código de red, para mí todo está hecho. Así que tengo que creer que solo hay un patrón que puedo seguir y que no me confundo por la gran cantidad de casos de esquinas de múltiples hilos que parece que nunca podré perfeccionar.

Gracias.

¿Fue útil?

Solución

Por extraño que parezca, puede encontrar algo en una asignación de informática, CSC 512, programación 4: Servidor multiproceso con patrones . Aunque es vudú en C ++, pero la teoría es bastante comprensible para alguien que puede hacer C #.

Aunque puede obtener la lista completa de buenas lecturas en la página principal .

Otros consejos

Echa un vistazo a esta pregunta anterior:

Cómo ¿Minimiza el número de subprocesos utilizados en una aplicación de servidor TCP?

No es estrictamente específico de C #, pero tiene un buen consejo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top