Девід Кінг (David King)
davidk@gnome.org 2013
Обмін даними HTTP між клієнтом і сервером, придатні до портування засоби для обробки вхідних і вихідних даних у мережі на основі сокетів та керування пристроями для роботи у мережі.
Максим Дзюманенко
dziumanenko@gmail.com 2010
Юрій Чорноіван
yurchor@ukr.net 2020

# Низькорівнева робота у мережі

Створення потужних і гнучких серверів і клієнтів HTTP

Використання портативних програмних інтерфейсів на основі сокетів у інтерфейсі користувача без блокування

Виявлення стану з'єднання мережі та керування ним

Скористайтеся перевагами портативних програмних інтерфейсів мережі для доступу до служб мережі. Асинхронний підхід до введення-виведення надаватиме можливість користуватися графічним інтерфейсом вашої програми, доки виконуються дії із введення та виведення даних. Виявляйте зміни у стані мережі системи, щоб ваша програма належним чином відповідала на виклики, коли немає доступу до інтернету.

# Що робити?

Для асинхронного доступу до низькорівневих програмних інтерфейсів скористайтеся мережевим GIO. Для роботи з проксі та записами DNS доступний високорівневий інтерфейс, також реалізовано використання безпечних сокетів (TLS).

У GIO є доступним просте спостереження за станом мережі, а NetworkManager надає можливості з повноцінної підтримки пристроїв мережі та топології мережі.

Libsoup забезпечує роботу гнучкого інтерфейсу до серверів і клієнтів HTTP. Надається доступ як до синхронних, так і до асинхронних програмних інтерфейсів.

# Приклади з реального життя

Мережеві технології GNOME застосовуються у багатьох проєктах із відкритим кодом. Деякі з прикладів наведено нижче.

Тенета — браузер GNOME, у якому для доступу до служб HTTP використовується libsoup.

( Сайт | Знімок вікна | Початковий код )

GNOME Shell — видиме для користувача стільничне середовище GNOME, яке використовує NetworkManager для меню стану мережі, включно з керування дротовими, бездротовими мережами, 3G модемами та мережевими системами VPN.

( Сайт | Знімок вікна | Початковий код )