Модуль socket в Python предоставляет возможность для работы с низкоуровневыми сетевыми протоколами TCP/IP, UDP и другими. В этой статье мы рассмотрим некоторые основные концепции и примеры использования модуля socket для создания клиент-серверных приложений на языке Python.
Создание сокета
Для начала работы с сокетами, необходимо импортировать модуль socket:
import socket
Создание сокета происходит с помощью функции socket.socket(), которая принимает два аргумента: семейство адресов и тип сокета. В большинстве случаев используются следующие параметры:
socket.AF_INET— семейство адресов IPv4socket.SOCK_STREAM— потоковый сокет (TCP), используется для надежной передачи данных
Пример создания сокета:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Простой сервер на базе TCP
Для создания сервера, необходимо выполнить следующие шаги:
- Создать сокет
- Привязать сокет к IP-адресу и порту
- Прослушивать входящие соединения
- Принимать соединения
- Обрабатывать данные от клиента и отправлять ответ
- Закрыть соединение
Пример простого сервера:
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 12345)) # Привязываем сокет к IP-адресу и порту
server_socket.listen(1) # Прослушиваем входящие соединения
print("Сервер запущен и ожидает подключений...")
client_socket, client_address = server_socket.accept() # Принимаем соединение
print(f"Клиент подключился: {client_address}")
data = client_socket.recv(1024) # Получаем данные от клиента
print(f"Клиент отправил данные: {data.decode()}")
client_socket.send(b"Данные получены") # Отправляем ответ клиенту
client_socket.close() # Закрываем соединение
Простой клиент на базе TCP
Для создания клиента, необходимо выполнить следующие шаги:
- Создать сокет
- Установить соединение с сервером
- Отправить данные на сервер
- Получить ответ от сервера
- Закрыть соединение
Пример простого клиента:
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 12345)) # Устанавливаем соединение с сервером
client_socket.send(b"Привет, сервер!") # Отправляем данные на сервер
data = client_socket.recv(1024) # Получаем ответ от сервера
print(f"Сервер отправил данные: {data.decode()}")
client_socket.close() # Закрываем соединение
😉 Надеюсь, эта статья помогла вам разобраться с основами работы с модулем socket в Python. В дальнейшем вы можете изучить более продвинутые темы, такие как асинхронное программирование, обработка нескольких клиентов одновременно и другие.
Не забывайте экспериментировать и практиковаться, чтобы закрепить полученные знания!
Перейти в телеграм, чтобы получить результаты теста





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