Вступление
Эх сокеты, одно из чудес света благодаря им щас каждый может создать свой анонимный чат. Как дополнению языку программирования я не считаю.
Теория
Начнем с теории что же такое Сокет как говорится в Википедии сокет это... (ну как сказать в Википедии скорее своими словами)
Сокет — это программный интерфейс для доклада информационного обмена между системами.
Есть два типа сокета это:
- Клиентский - даёт значение для отправки
- Серверный - принимает и отдает
Сокеты работают на транспортном уровне протоколов и существуют 2 типа:
- Потоковый(SOCK_STREAM) - сокет с уже имеющимися соединением на основе протокола ТСР
- Дейтаграммный(SOCK_DGRAM) - сокет для которого не нужно установливать явного соединения
Также сокет состоит из IP & Порта
- Ip-адрес - это уникальный сетевой адрес в комьютерной сети
- Порт - это натуральное число, записаное в пратаколах таких как TCP, UPD и др.
В python для работы с сокетами используется уже встроенная библиотека socket. Самая много функциональная функция модуля является функция socket(), которая возвращает объект типа сокет, имеющим соответствующими функциями для работы с соединением.:
class socket.socket
sock = socket.socket()
Функции
- socket.bind(address) - Привязывает сокет к адресу address/инициализирует IP-адрес и порт. Сокет не в каком случаи быть привязан до этого.
- socket.listen([backlog]) - Перезапускает сервер в режим приема соединений. Параметр``backlog (int)`` – количество соединений, которые будет принимать сервер.
- socket.accept() - Принимает соединение и блокирует систему в ожидании сообщения от клиента. В результате возвращает значение: conn
- socket.recv(bufsize[, flags]) - Читает и дает данные в двоичном формате (набор байтов) из сокета. Параметр bufsize (int) – большое количество байтов в одном значении/сообщении
- socket.send(bytes[, flags]) - Отправляет данные клиенту и возвращает параметр bytes (bytes) – в двоичные данных.
- socket.close() - закрывает сокет (логично)
Работа с сокетом во многом похожа с работой с файловым объектом. Принцип - открыли соединение - считали данные - закрыли соединение.
А на этом всё, все пока люблю вас