Сразу скажу, 27 главу Стивенса «UNIX: разработка сетевых приложений» я читал, читаю и буду читать (обе книги цикла на столе лежат). И я знаю решение на чистом С под Юнихи.
Теперь, собственно, вопрос:
Каким образом можно сделать диспетчеризацию входящих соединений для сервера с главным и дочерними процессами так, чтобы каждый дочерний процесс мог обслуживать несколько клиентов одновременно? Не суть важно — асинхронными или многопоточными будут дочерние процессы.
Вопрос заключается в том, _КАК_ передать подключенный(е) сокет(ы) дочерним процессам на обслуживание? Желательно в рамках Mono, чтобы решение не было сильно привязано к платформе.
Интересует не конкретный пример, а именно ссылки, где это всё описывается детально, на примерах, с объяснением ньюансов и подводных камней.
Задача простая — обслуживать несколькими экземплярами сервера некоторое множество клиентов, протоколы — UDP и/или TCP (хотя, по логике, это вообще не суть важно).
детально есть не для дотнета.
есть альтернатива — один процесс балансировщик/мультиплексор(он держит настоящие сокеты) и куча процессов которые работают с ним по IPC(unix-sockets, shared memory, pipes).
Да, в моно это not implemented yet… Даже не знаю, считать ли полученную инфу ответом на вопрос или нет — т.е. решения в чистом виде нет, что по сути, является ответом на вопрос :) Спасибо.
Это почти то, что мне требовалось, только эти функции не реализованы в Моно. Пока придётся обходиться нитями вместо процессов. Не очень кошерно, но должно сработать для прототипа, а там, глядишь, и появится в Моно всё, что надо для полного счастья.