Сокеты являются основой для работы с сетью в Python, и они предоставляют возможность обмениваться данными между двумя программами через сеть. В этой статье мы рассмотрим основные понятия работы с сокетами, а также покажем примеры использования сокетов в Python.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Основные понятия
Сокет — это абстракция, представляющая собой конечную точку сетевого соединения. Вам потребуется создать два сокета для обмена данными: один на стороне клиента и один на стороне сервера. Клиент и сервер могут обмениваться данными, используя эти сокеты.
Существует два основных типа сокетов:
-
TCP-сокеты (Transmission Control Protocol) — обеспечивают надежное соединение между двумя устройствами. Они обычно используются в веб-серверах и клиентах, почтовых серверах и других приложениях, где требуется надежность и порядок доставки данных.
-
UDP-сокеты (User Datagram Protocol) — обеспечивают передачу данных без установления соединения. Они обычно используются в видео и аудио потоковых приложениях, играх и других приложениях, где скорость важнее, чем надежность.
Создание сокетов в Python
Для работы с сокетами в Python используется модуль socket
. Давайте создадим простой TCP-сервер и клиент для демонстрации.
TCP-сервер
import socket # Создаем сокет server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Привязываем сокет к IP-адресу и порту server_socket.bind(('localhost', 12345)) # Слушаем входящие соединения server_socket.listen(1) print("Сервер запущен и ожидает подключений...") # Принимаем входящее соединение client_socket, client_address = server_socket.accept() print(f"Подключение установлено с {client_address}") # Получаем данные от клиента data = client_socket.recv(1024) print(f"Получены данные: {data}") # Закрываем соединения client_socket.close() server_socket.close()
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
TCP-клиент
import socket # Создаем сокет client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Подключаемся к серверу client_socket.connect(('localhost', 12345)) # Отправляем данные серверу client_socket.sendall(b'Hello, server!') # Закрываем соединение client_socket.close()
Работа с UDP-сокетами
Работа с UDP-сокетами немного отличается от работы с TCP-сокетами. Давайте посмотрим на примеры сервера и клиента, использующих UDP-сокеты.
UDP-сервер
import socket # Создаем сокет server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Привязываем сокет к IP-адресу и порту server_socket.bind(('localhost', 12345)) print("Сервер запущен и ожидает входящих данных...") # Получаем данные от клиента data, client_address = server_socket.recvfrom(1024) print(f"Получены данные от {client_address}: {data}") # Закрываем сокет server_socket.close()
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
UDP-клиент
import socket # Создаем сокет client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Отправляем данные серверу client_socket.sendto(b'Hello, server!', ('localhost', 12345)) # Закрываем сокет client_socket.close()
Теперь вы знакомы с основами работы с сокетами в Python и сможете использовать их в своих проектах. Не забывайте изучать дополнительные материалы и практиковаться, чтобы стать еще более опытным в этой области! 😉
Добавить комментарий