Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70% Забронировать скидку
23 Июн 2023
2 мин
1782

Как работать с модулем socket в Python

Изучите основы работы с модулем socket в Python, создайте простые TCP-сервер и клиент, и начните разрабатывать сетевые приложения.

Модуль socket в Python предоставляет доступ к низкоуровневому API для работы с сетевыми соединениями. В этой статье мы рассмотрим основные понятия и методы модуля socket, а также приведем примеры их использования.

Создание и настройка сокетов

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

import socket

Создание сокета производится с помощью функции socket.socket():

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

Здесь socket.AF_INET указывает на семейство адресов (IPv4), а socket.SOCK_STREAM обозначает тип сокета (TCP).

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

Для установления соединения с удаленным хостом используется метод connect():

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

Здесь указывается адрес удаленного хоста и номер порта.

Обмен данными

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

s.send(b"GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n")
data = s.recv(1024)

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

Завершение работы с сокетами

После обмена данными, соединение следует закрыть с помощью метода close():

s.close()

Пример: простой TCP-сервер

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

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 9999))  # привязка сокета к IP-адресу и порту
s.listen(1)  # количество входящих соединений в очереди

print("Ожидание входящих соединений...")

conn, addr = s.accept()  # принятие входящего соединения
print(f"Соединение установлено с {addr}")

data = conn.recv(1024)  # получение данных
print(f"Получены данные: {data}")

conn.send(data)  # отправка данных обратно
conn.close()  # закрытие соединения

Пример: простой TCP-клиент

Теперь создадим простой TCP-клиент, который будет соединяться с сервером и отправлять данные:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("127.0.0.1", 9999))  # подключение к серверу

s.send(b"Привет, сервер!")  # отправка данных
data = s.recv(1024)  # получение данных

print(f"Получены данные: {data}")

s.close()  # закрытие соединения

Теперь вы знаете основы работы с модулем socket в Python. Эти знания помогут вам в создании сетевых приложений и разработке протоколов обмена данными. Удачи вам в изучении Python! 😉

Добавить комментарий

Подарок
Забрать подарок