Модуль 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! 😉
Перейти в телеграм, чтобы получить результаты теста





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