LINUX.ORG.RU

Thread C++ пример сервера


0

1

Собственно ищу пример оного на С++ (можно telnetовский или echo).Который бы:

1) Многопоточный(без гонок и деадлоков)
2) Был именно в С++ стиле(а то я все,что пытаюсь написать выходит очень Сишное)
3) Без Boost,на чистом stl
4) Максимально отточенный.(auto_ptr и тд и иже с ним)


★★★★★

Побуду злобным троллем - а может все таки лучше Erlang в качестве языка? По теме: Посмотреть Как вариант посмотреть, врать не буду, подробностей не знаю - Firebird.

TheKnight ★★★
()

И вопрос - зачем? НА C++ сервера приложений/WEB-сервера/telnet|gtp|echo писать не выгодно(ИМХО). В данном случае, опять таки ИМХО, выгодней пользоваться или более низкоуровневым средством - C, либо более высокоуровневым - Lisp, Scheme, Erlang, Java, etc...

TheKnight ★★★
()

Ну у меня что-то такое было, но там вообще говоря сервер веб-сервисов на С++, сами веб-сервисы на Python. Но специализация - серверная и клиентская автентификация X.509. Но он не годится, так как на соединение выделяется поток, что есть очень и очень плохо

vertexua ★★★★★
()
Ответ на: комментарий от TheKnight

Злобные тролли® рекомендуют Lisp. Erlang не котируется.

anonymous
()
Ответ на: комментарий от TheKnight

выгодней пользоваться или более низкоуровневым средством - C, либо более высокоуровневым - Lisp, Scheme, Erlang, Java, etc...

Есть еще золотая середина в виде Си ++:) Ты на Си вообще пробовал сервера писать? Там 90% времени будешь не сервер писать, а воевать с написанием собственных примитивов типа vector/list/map либо трахаться с использованием ужасов из sys/queue.h/sys/tree.h.

Reset ★★★★★
()

>3) Без Boost

2) Был именно в С++ стиле(а то я все,что пытаюсь написать выходит очень Сишное)

А ниполучится! Ибо BSD-сокеты в купе с селектами и поллами всё равно привнесут добрый кусок голого Си-кода.

yoghurt ★★★★★
()
Ответ на: комментарий от Reset

> Есть еще золотая середина в виде Си ++:)

Ага, и будешь трахаться с тем фактом, что C++'ые примитивы ну никак не гарантируют потокобезопасность.

anonymous
()
Ответ на: комментарий от Reset

> трахаться с использованием ужасов из sys/queue.h/sys/tree.h

Зря ты так, приятные штучки ведь. Аналогов даже в стл нет, только в бусте, с которым без траха сложно :)

const86 ★★★★★
()
Ответ на: комментарий от anonymous

> т.е. stl'ные list, deque и queue не аналоги или неполные/неудобные?

Аналоги - это контейнеры из boost::intrusive.

const86 ★★★★★
()
Ответ на: комментарий от anonymous

То что они её не гарантируют это как раз хорошо, а трахаться с этим ни разу не приходилось. Просто надо уметь разделять данные между потоками и локализовывать обмен данными между ними.

Reset ★★★★★
()
Ответ на: комментарий от TheKnight

>И вопрос - зачем? НА C++ сервера приложений/WEB-сервера/telnet|gtp|echo писать не выгодно(ИМХО)

Да я знаю.Я сам в основном на perl + AnyEvent пишу.
P.S Сморю на Erlang

pinachet ★★★★★
() автор топика
Ответ на: комментарий от Reset

>в бусте asio есть, нафига изобретать собственный велосипед, если можно взять уже изобретенный и обкатанный ?

Ну да - я за буст всеми ластами ,но интересно посмотреть как оно будет на stl.

pinachet ★★★★★
() автор топика
Ответ на: комментарий от koriun

>Имеем несколько серверов на Поко. Чистий C++

Это фреймворк - так что не совсем подходит.
P.S До завтра покажу свою версию на тредах (но надо сначала через valgrind прогнать и тд)

pinachet ★★★★★
() автор топика

Можно посмотреть на ACE - оно как раз создавалось для написания сетевых приложений на С++ и предоставляет нормальные классы вместо дрочки с socket API.

http://www.cse.wustl.edu/~schmidt/ACE.html

Там можно скачать дистр и примеры. Вот в примерах можно найти то, что тебе нужно.

DELIRIUM ☆☆☆☆☆
()

Блять.
Чувак!

C++ это такой COBOL. В приличном обществе он уже давно никому нахуй не нужен. И программисты на нем тоже никому нахуй не нужны, разве что для поддержки унаследованного(legacy) говна.

Хватить грызть какашку. Если тебе хочется низкоуровневости - иди учись работать с чистым Си, с ассемблерами, изучай архитектуру современных процессоров, и так далее.
Если высокоуровневых вещей - бери любой нормальный высокоуровневый язык, да хоть C#, и на нем что-то делай, устраивайся на работу и так далее.
А плюсы это какашка, выкинь ее.

Если моему совету последуешь, я тебе гарантирую, ты мне еще потом спасибо скажешь.

anonymous
()
Ответ на: комментарий от anonymous

Во-во.

Коричневая середина, евпочя.

anonymous
()
Ответ на: комментарий от pinachet

Это не троллинг, это правда жизни

anonymous
()
Ответ на: комментарий от gandjubas

C# не такая какашка, как C++
Хороший язык, десктопные приложения писать, или даже под веб чего-нибудь.

anonymous
()
Ответ на: комментарий от gandjubas

Этот язык целенаправленно использовать в:
1) Приложения под веб(ASP.NET+Silverlight это гораздо круче всех похапоидных недофреймворков и даже многих питоновских)
2) Десктопные приложения. Тут вообще без вариантов - на C++ их писать это ад и мучения, VB - мертв, остальное тормозит так, что на нем ничего выше хелловорлдов не напишешь. Java слишком жирная и далеееекооо не везде есть.
3) Суровый энтерпрайз - .NET так же хорошо подходит, как и жаба, на винде даже лучше подходит.
4) Игрушки, в т.ч. под хренкоробку, а не только десктопные - благо ресурсы современных компьютеров позволяют.
5) Приложения под мобилки. Но, это только как WP7 выйдет.

А что еще, какие области есть? Ну, дикий эмбеддед - но там сишечка сплошная, да и скучная это область, да и узкая крайне.

anonymous
()
Ответ на: комментарий от anonymous

> 1) Приложения под веб

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

2) Десктопные приложения

На яве пишут мощные десктопные приложения на яве для трёх платформ: Linux, Mac и Windows - легко.

Java слишком жирная и далеееекооо не везде есть.

Там где нет явы, С# - вообще не стояло.

3) Суровый энтерпрайз - .NET так же хорошо подходит

Не подходит, ибо полноценный .NET есть только на офтопике, кроме того в таких приложениях очень часто используются ВинАпи (и провоцирует использовать этот апи, потому что в ВыньФормс многих штуковин нет, а хотца)

4) Игрушки

C 3D-графикой, ага

5) Но, это только как WP7 выйдет.

Вот-вот, об этом и речь.

gandjubas
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.