Заразили меня южноамериканские партнеры собственной энергией. Конечно, вот так как очень-то беззаботные люди! Работают по 60-75 часов еженедельно особенно не опасаются, что спокойно сможет в общем-то ничего отлично не выйти. За стремительную исследование программ в южноамериканских коммпаниях начисляется бонус. Впрочем, определенно, я его заслуживаю, потому что широко предлагаю свежую очень-то программную вязку
Я длинно писал серверные программы на Object Pascal. Значит есть по-особенному конкретная методология, как все устроить резко, отменно, чтоб не было утечек и многое другое. Простой сервер на TCP выделываю, мысленно заявим, за пару часов – все чин-чинарем, сервис Windows, любому включению – по-своему собственный поток, интегрированный маршаллинг и многое другое. Но эти все высочайшие скоростные признаки – ничто, ежели Вы подробно пишете на Эрланг! Там реализация сервера – вопросец единиц мин.!
Delphi чрезвычайно взаправду превосходна для написания очень-то зрительных интерфейсов. Возможно, я категорически не заявляю, что C# или же Java воистину плохи. Кроме того да и в Erlang есть поистине зрительные средства, постепенно начиная с заключительней версии – в том числе и чрезвычайно слишком хорошие. Ладно. Казалось, главное, что я тщетно пытаюсь постепенно заявить – вам предоставляется возможность специально создать по-человечески зрительное прибавление также за пару минут. Разумеется дык чуваки!!!
Если нужно прописать и посетителя и трудоемкий сервер со интегрированной кластеризацией и другими вкуснятиной, вязка Delphi + Erlang = вправду настоящий шанс устроить все резко!
Ах да, форматы. Однако, я спокойно поразмыслил за Вас и прописал КОНВЕРТЕР Delphi <-> Erlang. (Напишите мне на killy@newmail.ru и я Вам его официально пришлю). Во всяком случае этот ведь конвертер срочно понадобиться Вам, раз Вы будете подробно писать, мысленно заявим, драйвер для Erlang на Паскале. Быть может я совсем торжественно не заявляю, что C++ – довольно-таки скверный язык. Наконец, в тех местах, где потребуется просто-таки необыкновенно высочайшее быстродействие, я практически постоянно драйвера подробно пишу на C. Как смотрится код взаимодействия <<Вставить ссылочку на код>>.
Все изящные эпизоды маршаллинга я принял к сведению :
оптимизация передачи списков целых <=255 (воспринимаются как строчка) попросту новый и по-своему ветхий форматы float передача хвоста перечня
Что Вам надобно устроить, чтоб хладнокровно передать эти ИЗ Паскаля:
MarshalledData := Marshall(..данные тупла здесь…); cbNetLen := RevertCardinal(Length(MarshalledData); Socket.Write(cbNetLen, SizeOf(Cardinal)); Socket.Write(Pointer(MarshalledData)^, Length(MarshalledData));
Т.е. маршаллим эти, обратно берем длину буфера, перекладываем ее весьма в сетевой формат (RevertCardinal = htonl), успешно высылаем. Кажется, вдогонку – буфер.
Если мы покажем в проге на Эрланг режим сокета [active, {packet,4}],
каждой нашей посылке станет соответстовать одно известие в Erlang – нам не стоит лично терпеливо собирать пакет! Все, что нам надо, данное устроить так:
handle_info({tcp, Socket, Data}, State)->; MyTerm=binary_to_term(Data), some_processing(MyTerm), {noreply, State}.
УСЕ!
Надеюсь мне вштырило. Таким образом, раньше я подробно писал проги за часы, и уже – за минутки. Так вот, очень-то качественный заказчик с проф составляющими (dx, правильно заявим), и просто-напросто высококачественный сервер – OTP-compliant. Кстати, мне премия!
Вы должны быть зарегистрироавны чтобы оставить комментарий.