Диспетчеризация входящих соединений на C#?

Привет!



Сразу скажу, 27 главу Стивенса «UNIX: разработка сетевых приложений» я читал, читаю и буду читать (обе книги цикла на столе лежат). И я знаю решение на чистом С под Юнихи.



Теперь, собственно, вопрос:



Каким образом можно сделать диспетчеризацию входящих соединений для сервера с главным и дочерними процессами так, чтобы каждый дочерний процесс мог обслуживать несколько клиентов одновременно? Не суть важно — асинхронными или многопоточными будут дочерние процессы.

Вопрос заключается в том, _КАК_ передать подключенный(е) сокет(ы) дочерним процессам на обслуживание? Желательно в рамках Mono, чтобы решение не было сильно привязано к платформе.



Интересует не конкретный пример, а именно ссылки, где это всё описывается детально, на примерах, с объяснением ньюансов и подводных камней.



Задача простая — обслуживать несколькими экземплярами сервера некоторое множество клиентов, протоколы — UDP и/или TCP (хотя, по логике, это вообще не суть важно).



Заранее спасибо.
  • Вопрос задан
  • 3819 просмотров
Пригласить эксперта
Ответы на вопрос 4
Greendq
@Greendq Автор вопроса
Все профи спят или я глупый вопрос задал?
Ответ написан
Комментировать
shai_hulud
@shai_hulud
детально есть не для дотнета.
есть альтернатива — один процесс балансировщик/мультиплексор(он держит настоящие сокеты) и куча процессов которые работают с ним по IPC(unix-sockets, shared memory, pipes).
Ответ написан
Greendq
@Greendq Автор вопроса
Решения в чистом виде нет, что по сути, является ответом на вопрос.
Ответ написан
Комментировать
@Kano
Возможно я не до конца понял вопроса, но возможно вам это поможет — msdn.microsoft.com/ru-ru/library/system.net.sockets.socket.duplicateandclose.aspx
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы