The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"multithreading server"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"multithreading server" 
Сообщение от kostya Искать по авторуВ закладки(??) on 15-Фев-05, 23:09  (MSK)
Пожалуйста помогите... уже голову сломал :(

Надо сделать многопотоковый сервер, который обслуживает мнооого клиентов.
по принципу работы похожий на irc сервер, только со своим простеньким протоколом.

т.е. для каждого клиента создаётся новый поток для каждого нового клиента, получаются

некоторые данные, обрабатываются, и отсылается ответ и ожидаются новые данные.
Как я понимаю нужно поступить так:
1)создать поток
2)считать данные
3)записать данные через mutex в некоторый список(список, содержащий очередь

данных на обработку от нескольких потоков)
х)обработать эти данные потоком, обрабатывающим полученные данные от потоков,

обрабатывающих сокеты
4)разлочить mutex
5)ждать новых данных
теперь вопрос... как обработать список  потоком, который эти данные должен обрабатывать?

т.е. как получить этим самым потоком конец списка или узнать что в списке данных есть

новые данные?

конечно всё вышеизложеное сумбурно, но у меня паника... не знаю что делать :(

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Купи книжку." 
Сообщение от ZOD Искать по авторуВ закладки(??) on 16-Фев-05, 02:20  (MSK)
Честно говоря не очень въехал.

> т.е. как получить этим самым потоком конец списка или узнать что в списке
> данных есть новые данные?

Связный список например или глобальная переменная взводимая при записи в список и грохаемая после чтения.


UNIX: разработка сетевых приложений  У. Р. Стивенс
http://www.piter.com/book/978531800534/
UNIX: взаимодействие процессов У. Р. Стивенс
http://www.piter.com/book/978531800535/

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Другое решение." 
Сообщение от Android emailИскать по авторуВ закладки(??) on 16-Фев-05, 07:06  (MSK)
> х)обработать эти данные потоком, обрабатывающим полученные данные от потоков,
Если вы будете обрабатывать данные одним потоком, то  теряется смысл многопоточности, так как запросы клиентов будут обработаны последовательно.
Если вам нужна параллельная обработка запросов, то лучше выделить один поток
для ожидания соеденения.После поступления запроса на соеденение, этот поток
должен создаь новый поток, который будет принимать,обрабатывать отправляеть данные, после чего завершаться.Таким образом число потоков у вас будет переменным и зависить только от числа одновременно обрабатываемых запросов.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "multithreading server" 
Сообщение от Vladislav Lazarenko emailИскать по авторуВ закладки on 16-Фев-05, 11:38  (MSK)
В данном случае очень полезно было бы воспользоватся готовой вещью - CORBA. Эта штука уже заготовочек для многопотокового сервера.
Например, если вы используете C++, то я советовал бы ACE ORB (TAO).

Зачем изобретать велосипеды) Пишете IDL интерфейс, немного когда ... и у вас полнофункциональный enterprise чат сервер.

:-)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "multithreading server" 
Сообщение от kostya Искать по авторуВ закладки(??) on 16-Фев-05, 19:59  (MSK)
>В данном случае очень полезно было бы воспользоватся готовой вещью - CORBA.
>Эта штука уже заготовочек для многопотокового сервера.
>Например, если вы используете C++, то я советовал бы ACE ORB (TAO).
>
>
>Зачем изобретать велосипеды) Пишете IDL интерфейс, немного когда ... и у вас
>полнофункциональный enterprise чат сервер.
>
>:-)

эээ :)
делаааа... тут надо основательно покопаться )
спасибо на интересную наводку )

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "multithreading server" 
Сообщение от Dead Mustdie emailИскать по авторуВ закладки on 18-Фев-05, 09:39  (MSK)
Жестокий Вы советчик.
Человек хотел велосипед, а Вы ему сразу автопоезд предлагаете :).
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "multithreading server" 
Сообщение от SergeiZz Искать по авторуВ закладки on 19-Фев-05, 13:18  (MSK)
>Жестокий Вы советчик.
>Человек хотел велосипед, а Вы ему сразу автопоезд предлагаете :).
Я бы ещё добавил, что озвученные затруднения от реализации зависят слабо, а
потому проявятся и с ACE (после полугодового изучения последней).

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру