Сокеты UDP с подтверждением. Пример на Perl. Гарантированная доставка данных по UDP

4 апреля 2013 г. 21:40 perl   UDP  

Fig2_UDPwork.jpgОбычно датаграммный UDP используется там, где не нужна гарантия принятия данных: аудио- и видео-потоки, онлайн-игры, ip-телефония и т.п.: даже если пару десятков байт потеряется в таком потоке, пользователь не заметит ощутимой разницы, максимум испытает какой-нибудь глюк и успешно продолжит получать риал-тайм информацию.

Другое дело если нужно нужно передать какой-нибудь бинарный файл, целосность которого обязательна. Большинство возьмутся тут же использовать TCP, но на самом деле UDP можно  тоже применить для этой задачи.

В примере я покажу следующий вариант организации протокола: допустим есть сервер, который должен передать клиенту определённые данные. Данные - это в нашем случае будут просто строки с текстом "Сообщение №х". Клиент отправляет серверу число пакетов, которое он хотел бы получать, а тот в ответ ему кидает пакеты.

Ну а дальше начинается самое интересное.

Работа с потоками в Perl

24 марта 2013 г. 18:53 perl  

Потоки - это то, что позволяет распараллеливать алгоритм. Распараллеливание используется как для повышения производительности в многопроцессорных системах, так и для необходимости параллельного выполнения некоторых последовательностей операторов (Например пока одна последовательность операторов в бесконечном цикле ждёт пакет из интернета, вторая последовательность обеспечивает работу интерфейса пользователя).

В этой статье я попробую описать на примерах поведение потоков, а так же рассмотреть некотрые способы работы с ними, предоставленные в документации.

Статья состоит из четырёх разделов:

1. Создание потока
2. Что можно передать в функцию потока
3. Что можно возвратить из функции потока
4. Жизнь потоков на примерах


Eclipse как среда разработки для Perl

1 марта 2013 г. 21:38 perl   eclipse  

Писать код на языке Perl вполне можно и в обычном текстовом редакторе. Однако если вам нужно быстро получить автодополнение, и запуск а так же отладку в одном и том же окне то можно воспользоваться какой-нбудь IDE. Я попробовал использовать для этих целей Eclipse и остался вполне доволен.

Для тех кто ни когда не работал с Eclipse скажу что это не самая легкая среда разработки и работать с комфортом на слабых ПК в ней не получится. 

В этой маленькой статье я расскажу как установить Eclipse в Ubuntu-подобных Linux и в Windows, и как запускать отладку. 


Установка Perl и модулей для него в Ubuntu

20 февраля 2013 г. 19:46 perl  

Как и во многих языках программирования, в языке Perl имеются механизмы для использования внешних библиотек, то есть файлов, содержащих процедуры на языке Perl, которые используются несколькими программами. В языке Perl принято называть такие библиотеки модулями (англ. modules). Обычно модули Perl устанавливаются в один (или несколько) каталогов, путь к которым закладывается в интерпретатор языка Perl на этапе компиляции интерпретатора; в Unix-подобных операционных системах, поиск модулей происходит в каталогах /usr/lib/perl5, /usr/local/lib/perl5 и некоторых их подкаталогах.

Огромное количество модулей для Perl содержится в CPAN (Comprehensive Perl Archive Network — «всеобъемлющая сеть архивов Perl»).

На Ubuntu-подобных линухах perl есть в репозитариях, однако многие из разработчиков испытывают трудности с установкой некоторых модулей. Вместо "репозитариевского" perla можно установить готовую сборку ActiveState Perl. Во-первых в ней будут уже установлено большинство нужных модулей, во-вторых остальные модули обычно устанавливаются очень удобно и в большинстве своем работоспособны. Те модули которых нет можно установить из CPAN с помощью запуска специальной утилиты Perl Package Manager(ppm)ActiveState можно установить и в linux и в Windows.