Модуль 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! 😉
Добавить комментарий