PDA

Просмотр полной версии : Однопоточный TCP сервер.


stellar
19.08.2004, 14:26
Написал сабж с поддержкой загружаемых библиотек а-ля модули Apache.

Рабочее название - Гранит. :)

Тарболл и порт можно узреть здесь: http://reki.ru/products/granite/
Конструктивная и не очень критика принимаются в этом топике.

shaman
19.08.2004, 14:31
2 вопроса.
1. Зачем он нужен?
2. Почему конфиг в xml?

sauron
19.08.2004, 14:37
2shaman: для всяких полезных вещей. А потому что унифицированный стандарт :)

2stellar: а типа тока одного клиенту обслуживать могет ? А если я ssl хочу ? И езе чтоб в LDAP лазило ?

stellar
19.08.2004, 14:38
2 вопроса.
1. Зачем он нужен?
2. Почему конфиг в xml?


1) В ряде случаев использовать fork или POSIX треды не получается.
Например, когда объемы данных, обрабатываемых сервером очень большие и несколько fork могут привести к исчерпанию памяти.
А использовать мультитредный сервер не получается из-за наличия библиотек сторонних производителей с закрытым кодом.

Собственно, наличие этих двух факторов и заставило написать простой однопоточный TCP сервер.

2) Конфиг в XML, чтобы не писать самому парзер.

sauron
19.08.2004, 14:40
2stellar: гм... пример не возможного использования Posix threads ? Я ядра 2.6.x люблю ;)

stellar
19.08.2004, 14:40
а типа тока одного клиенту обслуживать могет ? А если я ssl хочу ? И езе чтоб в LDAP лазило
Пиши свой обработчик (.so) и будет тебе щастье.
libsocket++.so вполне можно заменить на такую же с поддержкой SSL.

sauron
19.08.2004, 14:42
2stellar: гмы :) подумаю :)

stellar
19.08.2004, 14:44
2stellar: гм... пример не возможного использования Posix threads ? Я ядра 2.6.x люблю ;)

Когда сторонняя библиотека откомпилирована БЕЗ поддержки мультитредности. А создавать копии ее объектов нельзя ибо они очень много хотят памяти.

sauron
19.08.2004, 15:28
2stellar: мдя... это точно :)