Копия викизеркало

Это зеркало вики с pascal.chat. Правка, история и вход — там.

lNet/ru

English · Русский

О компоненте

lNet или Lightweight Networking Library представляет собой набор классов и компонентов для включения управляемых событиями сетей TCP или UDP.

Авторы:

Лицензия: modified LGPL license (разрешает статическое связывание).

Загрузка

Существует два варианта библиотеки, которые больше полностью не синхронизируются:

Вы можете связаться с автором напрямую по электронной почте или перейти на канал #lnet на freenode.

Использование

Бросьте TLTCPComponent или TLUDPComponent на форму. Назначьте обработчики событий OnAccept, OnError, OnReceive, OnConnect и OnDisconnect. Обратите внимание, что это необязательно, но в большинстве случаев требуется для реализации функционала.

Клиентское соединение инициализируется вызовом Connect. Аргументами являются IP-адрес/имя хоста и порт соответственно. Используется неблокирующее соединение, это означает, что вы «НЕ» знаете, что вы подключены, пока случится событие OnConnect.

Соединение с сервером инициализируется вызовом Listen. Аргумент — порт.

Note: адрес — это строковое представление IP-адреса, например: '127.0.0.1' или имя хоста, например 'localhost'.

Отправка данных другой стороне осуществляется с помощью метода Send/SendMessage.

События TLNetComponent

Документация

Документация по lNet частично завершена. Вы также можете использовать диаграммы классов Jesus и модулей в качестве основного справочника.

Документация по протоколам eventer и TCP/UDP.: http://members.chello.sk/ales/docs (Archived version at archive.org}
Обзорные схемы можно найти здесь.: http://members.chello.sk/ales/docs/diagrams/overview.html
Pictures:
New class diagram
All classes
lNet units
lNet units 2
Зеркало документов и текущие заметки: http://z505.com/cgi-bin/powtils/docs/1.6/idx.cgi?file=lnetlufdoc


Прим.переводчика: большинство ссылок старые, потому - битые. На гитхабе есть демки и документация в виде xml-файла


Установка визуального пакета в Lazarus

Если вы хотите использовать LNet в своем проекте, просто скопируйте куда-нибудь каталог lib и поместите его в путь поиска модулей компилятора с параметрами -Fu и -Fi для подкаталога lib/sys.

Содержимое пакета

Пакет состоит из базовой библиотеки модулей lNet, lTelnet для протокола telnet, lFTP для протокола ftp и библиотек lNetComponents для предоставления визуальных и невизуальных компонентов для работы в сети. Начиная с версии 0.4.0 были добавлены компоненты lHTTP и lSMTP. Начиная с версии 0.5.1 в библиотеке есть поддержка MIME, в основном для создания составных сообщений для SMTP. Начиная с версии 0.6.0 lNet поддерживает SSL по модульному принципу, а протокол SMTP был расширен до полной поддержки SSL/TLS (включая согласование STARTTLS во время выполнения). Клиентская часть HTTPS также поддерживается.

Тестирование

Невизуальные консольные компоненты были протестированы на Win32, Win64, Linux_x86_32, Linux_x86_64, Linux_PPC, Linux_PPC_64, Linux_ARM* (2.1.4+) и FreeBSD_x86_32. Визуальные компоненты (пакеты Lazarus) были протестированы в Win32, Win64, ARM/WinCE, Linux_x86_32, Linux_x86_64 и FreeBSD_x86_32. (gtk1 и gtk2 на unix платформах)

История изменений

Надежность кода

В Linux, когда вы начинаете использовать LNet, GDB может случайно (при компиляции) аварийно завершить работу с различными типами сообщений. Установка для отладчика значения «Автоматически» в параметрах пакетов lnetbase и lnetvisual устраняет проблему.

Дорожная карта

Зачеркнутые пункты в указанном варианте уже реализованы:

*Для PING требуются необработанные сокеты, которые доступны только root на платформах unix/linux. Было решено, что lNet не будет поддерживать это, пользователи, которым нужен PING, должны использовать программы ping и ping6 через TProcess.

Требования

LNet 0.6+:

LNet 0.5:

LNet 0.4:

Специальное уведомление под Ubuntu

Некоторые «отсутствующие файлы» фактически находятся в подпапке «/net» и не обнаруживаются компилятором fpc. Просто скопируйте недостающие файлы из подпапки (lnet.pas, tomwinsock.pas, lfunc.inc...) '/usr/lib/lazarus/comComponents/lnetpackage/lnet' в '/usr/lib/lazarus/comComponents/lnetpackage'. ' (при необходимости измените пути). Затем завершите настройку, следуя процедуре установки. (от Steph12358)

Изменения в API

0.1 до 0.2

0.2 до 0.3

0.3 до 0.4

0.4 до 0.5

0.5.4- до 0.5.5+

0.5 до 0.6

Note: В версии 0.4.0 я забыл переместить модуль lHTTPSettings из библиотеки в пример http. Он НЕ должен был быть частью библиотеки, просто примером. НЕ используйте это, это не «библиотека», это часть примера (http-сервер получит собственный проект позже)

lNet для FreeBSD, Linux, macOS и Windows

См.также


From the Free Pascal wiki, page "lNet/ru", as it stood on 2023-09-11 after a change by Zoltanleo, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Версия 1, последнее изменение: WikiArchive, .