|
|
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
Добрый день, дорогие коллеги. Сегодня ровно в 10 утра получил техническое задание на исполнение сроком - неделя. В кратце, " Многозадачный SMTP сервер ", т.е. в след. четверг дедлайн . Ввиду того что с многопоточностью, как таковой, я дела почти не имел, для меня наверное будет накладно организовать все это в такой короткий срок. Вопрос мой собственно след., подкинте ссылок на материал, где можно почитать про организацию многозадачности , эффективное программирование сокетов и методологию построения SMTP серверов . Примеры кода тоже были бы полезны, но лишь в случае если они имеют общий характер, т.е. имееться подробное описание. Советы знающих людей, были бы очень уместны,даже более чем исходники =)) Заранее спасибо, Сергей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 10:44 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
вешайся, серьезно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 11:22 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
смотря какой компилятор. Если что-то борландовское - Indy. Там есть уже готовый SMTP сервер (и много других) + куча примеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 12:51 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
Если на с++, то посмотрите библиотеку ACE. Она как раз реализует многие патерны для работы с многопоточными сетевыми приложениями. все наши на www.corba.kubsu.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 13:11 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
Угу, а потом появляются такие вот ПРОМЫШЛЕННЫЕ приложения, которые какому-то горемыке приходится поддерживать Лучше отстреливать в децстве ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 13:45 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
Да, стало легче, спасибо. А почему же нереально? У меня пока сильное недопонимание только в районе многопоточности... ее не реально освоить за пару дней? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 15:35 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
говори мыло. есть небольшой пример(правда я сам где-то его надыбал). может поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 15:52 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
zverywka@mail.ru А пример чего именно? Или всего вместе?))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 15:59 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
vladvol, спасибо большое за поддержку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 16:33 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
DжеFFДа, стало легче, спасибо. А почему же нереально? У меня пока сильное недопонимание только в районе многопоточности... ее не реально освоить за пару дней? стукнуться реально, сделать толковое - вряд ли...несколько советов на данную тематику... советов основанных на типичных программерских ошибках. 1) фазы старта и стопа любой нитки необходимо делать синхронные к потоку их запускающему. На старте - перед "отпусканием" нитки в свободное плавание - убедиться что она стартовала успешно, ресурсы все в наличае и т.д.. На стопе - что нитка закончила последнии этапы обработки кванта инфы, и успешно финишировала. Тем самым Вы уберёте потенциальные места утечки ресурсов, падежа программы и многих скрытых глюков которые появляються и исчезают в зависимости от нагрузки на проц и(или) сетку. 2) любые данные передающиеся между потоками - необходимо синхронизировать с помощью объектов ядра. 3) при отклонении от этих правил - коментируйте код получше. Иначе при дальнейшем взаимодействии с другой логикой - возможны скрытые проблемы так же. 4) Из ниток необходимо использовать потокобезопасный код, либо позаботиться о синхронном доступе к такому коду. Это относиться и к ресурсам программы (коннекшен БД к примеру). Некоторые ресурсы не "шаряться" между потоками - для проверки таких мест используйте пилотные примеры с реализованной многопаточностью. 5) Старайтесь по возможности использовать встроенные механизмы многопоточности из библиотек, очердей сообщений, таймера и т.д.. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 16:36 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
Возьми лучше исходники sendmail, скомпилируй их и настрой. Как раз неделя уйдет и задача будет решена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 17:20 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
Да но sendmail это *nix ориентированное приложение, у меня в задаче WinSocks2.. Хотя оно конечно верно, можно посмотреть исходники и перенести основные моменты, но мне кажеться с разбором уйдет больше времени... Кстати был бы признателен, если бы кинули на мыло... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 17:32 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
DжеFFДа но sendmail это *nix ориентированное приложение, у меня в задаче WinSocks2..Это тебе только кажется. Вот, смотри на урл и дивись :) ftp://ftp.microsoft.com/developr/drg/UNIX-to-Windows/Ports/Sendmail/ А хочешь Берешь cygwin/mingw и вперед, делать свою собственную сборку последней версии. А еще лучше поставить рядышком со старым Win-сервером еще и какой-нибудь маленький *nix, перевести всю почту на него и не знать горя :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 17:53 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
cygwin/mingw А что это за зверь? Обещаю поковырять исходнички, очень конечно интересно =)) Спасибо за заботу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 18:01 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
DжеFFcygwin/mingw А что это за зверь?Еще есть люди не знающие что это такое? :) Порт GNU C и разных других gnu утилит под винды. http://cygwin.com/ http://mingw.org/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 18:07 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
Угу, вроде понял... буду смотреть.. Исходников кстати немеренно, угу... если браться то на неделю) угу))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 18:33 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
DжеFFДа, стало легче, спасибо. А почему же нереально? У меня пока сильное недопонимание только в районе многопоточности... ее не реально освоить за пару дней? чтобы было серьезное понимание, то надо в этом варится 3-5 лет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 19:14 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
потоки и сокеты - источники самых труднообнаружимых ошибок. без опыта за неделю написать рабочий сервер абсолютно невозможно. так что единственный выход - это, как уже посоветовали - переделывать примеры. но если этот сервер должен через неделю уже гдето работать - то Gluk (Kazan)вешайся, серьезно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 00:20 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
Мужики, скажите честно - неужели сегодня для коммерческой конторы есть хоть какой-то смысл разрабатывать smtp-сервер??? ИМХО это какой-то дешевый развод :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 00:35 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
http://www.naughter.com/smtp.html У Наутера хорошие классы, т.е. они работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 00:56 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
contrМужики, скажите честно - неужели сегодня для коммерческой конторы есть хоть какой-то смысл разрабатывать smtp-сервер??? ИМХО это какой-то дешевый развод :) Поддерживаю, это бред какой то за неделю написать SMTP сервер, и что подразумевается под написанием, может его еще и отладить и протестировать. Если мне бы поставили такую задачу и дали недельный срок, я бы не раздумывая е"л этого начальника в ухо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 12:50 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
нууу може такой способ уволить ценного кадра :) я сам так иногда делал (в ухо не звездили ибо внешность пугающа) А може и развод, тады кадру вухо В обще начальник обрисован как явно клинический идиет, на...я яму самописный SMTP сервер, пусть даже и многопоточный ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 13:10 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
А какие проблемы? Класс, поддерживающий протокол, есть. Придумать формат БД для сообщений и вуаля. Можно вообще на каждый аккаунт заводить директорию и не париться, а сообщения выкладывать в отдельные файлы с номером вместо имени - пусть у файловой системы голова болит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2006, 00:19 |
|
||
|
Многозадачный SMTP сервер
|
|||
|---|---|---|---|
|
#18+
Да уж, описанное выше прям не радует. Смысл следующий : (если глубже вникнуть) есть сервер для получение почты из вне, который и будет собственно использоваться на 25 порту, он уже реализован и висит.. Открытым остаеться вопрос высылаем почты в окружающую среду, это как раз недельная задача, грубо говоря получаеться что это многопоточный клиент, поторый должен рассылать почту на подписчитков, проверять актуальность указанных ими элекстронных адресов, получать MX записи и парсить синтаксис... Смысл объяснять долго, и я честно говоря не понял его до конца. Но звучит это примерно так, т.е. многопоточный клиент рассылки почты по доменам подписчиков, должен работать быстро, потому что рассылка будет вестись в том числе и новостная, получает мыло, проверяет его, сначала синтаксис, потом MX, потом существования адреса, после чего шлет сообщение о удачной регистрации, и некоторое количество новостных писем, за какой то там период. Клинет свой нужен, потому что думаеться разрабатывать свой протокол передачи на региональный сервера.. Ну вот как то так... пока моя задача такова.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2006, 18:43 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33901052&tid=2030684]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 429ms |

| 0 / 0 |
