Читать книгу «Создание web-сервера на ESP32 с помощью MicroPython и socket: практическое руководство» онлайн полностью📖 — Программист — MyBook.

Глава 2. Библиотека socket в MicroPython

2.1. Обзор библиотеки socket и ее возможностей

В предыдущей главе мы познакомились с основными концепциями сетевого программирования и узнали, как ESP32 может быть использован в качестве web-сервера. Теперь давайте более подробно рассмотрим библиотеку socket, которая является фундаментальной частью нашего проекта.

Библиотека socket – это набор функций и классов, позволяющих создавать сетевые соединения обмениваться данными между устройствами. Она является частью стандартной библиотеки Python доступна в MicroPython. Socket позволяет как серверные, так клиентские приложения, что делает ее идеальным инструментом для нашего проекта.

Возможности библиотеки socket

Библиотека socket предоставляет широкий спектр возможностей, включая:

Создание сетевых соединений: Socket позволяет создавать соединения между устройствами по протоколам TCP и UDP.

Обмен данными: Библиотека socket позволяет отправлять и получать данные между устройствами по созданному соединению.

Управление соединением: Socket предоставляет функции для управления соединением, такие как установка таймаутов, проверка соединения и закрытие соединения.

Работа с адресами: Библиотека socket позволяет работать IP-адресами и портами, что необходимо для создания сетевых соединений.

Протоколы TCP и UDP

Библиотека socket поддерживает два основных протокола: TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Протокол обеспечивает надежную доставку данных, гарантируя, что данные будут доставлены в правильном порядке без потерь. UDP, наоборот, быструю но не гарантирует надежность доставки.

Пример использования библиотеки socket

Давайте рассмотрим простой пример использования библиотеки socket для создания сервера, который принимает соединения и отправляет сообщение клиенту:

```python

import socket

Создаем сокет

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

Привязываем сокет к адресу и порту

sock.bind(('192.168.1.100', 8080))

Слушаем входящие соединения

sock.listen(1)

print('Сервер запущен. Ожидание соединений…')

while True:

Принимаем входящее соединение

conn, addr = sock.accept()

print('Соединение установлено с', addr)

Отправляем сообщение клиенту

conn.sendall(b'Hello, client!')

Закрываем соединение

conn.close()

```

Этот пример демонстрирует, как создать сервер, который принимает соединения и отправляет сообщение клиенту. В следующей главе мы рассмотрим, использовать библиотеку socket для создания web-сервера на ESP32.

Вывод

В этой главе мы познакомились с библиотекой socket и ее возможностями. Мы узнали, как создавать сетевые соединения, обмениваться данными управлять соединением. также рассмотрели пример использования библиотеки для создания сервера. следующей продолжим изучать библиотеку применение в создании web-сервера на ESP32.

2.2. Создание сокета и установка соединения

В предыдущей главе мы познакомились с основными понятиями сетевого программирования и узнали, как использовать библиотеку `socket` в MicroPython. Теперь готовы приступить к созданию сокета установке соединения удаленным сервером.

Что такое сокет?

Сокет (socket) – это программный интерфейс, который позволяет двум процессам или приложениям обмениваться данными через сетевое соединение. можно представить как виртуальный канал, по которому данные передаются между двумя точками в сети.

Создание сокета

Чтобы создать сокет, мы используем функцию `socket.socket()` из библиотеки `socket`. Эта функция возвращает объект сокета, который можем использовать для установления соединения с удаленным сервером.

```python

import socket

Создаем сокет

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

```

В этом примере мы создаем сокет с использованием протокола IPv4 (`AF_INET`) и типа сокета `SOCK_STREAM`, который обеспечивает надежную передачу данных.

Установка соединения

После создания сокета мы можем установить соединение с удаленным сервером помощью метода `connect()`. Этот метод принимает два аргумента: адрес сервера и порт.

```python

Устанавливаем соединение с сервером

sock.connect(("www.example.com", 80))

```

В этом примере мы устанавливаем соединение с сервером `www.example.com` на порту 80, который является стандартным портом для HTTP.

Отправка и прием данных

После установления соединения мы можем отправлять и принимать данные с помощью методов `send()` `recv()`. Метод отправляет на сервер, а метод `recv()` принимает от сервера.

Конец ознакомительного фрагмента.