Мир Кодов
4.57K subscribers
1.17K photos
690 videos
197 files
2.26K links
💻😎 Обсуждаем последние технологические новинки, разбираем код, делимся секретами. Присоединись, будем учиться вместе! 🚀🎓

@pishiii_suda_da_bot — быстрая связь и мгновенные ответы в любое время.
Download Telegram
Socket — это комбинация домена и порта, через которую клиент и сервер обмениваются данными.

В Python сокет можно использовать почти как файл: читать из него и записывать в него.
Он состоит из двух элементов: IP-адреса и порта. Когда сервер принимает соединение, он закрепляет за сокетом определённый порт.
Порт — это число в заголовках пакетов TCP и UDP, которое определяет, какому приложению на устройстве предназначен тот или иной IP-пакет.

**Основные функции и методы:**
☑️ .socket
☑️ .bind()
☑️ .listen()
☑️ .accept()
☑️ .connect()
☑️ .connect_ex()
☑️ .send()
☑️ .recv()
☑️ .close()

**Асинхронность в Python реализуется тремя способами:**
☑️ через колбэки
☑️ с помощью генераторов
☑️ с использованием async/await

**Пример кода 💾**

**```import socket

#domain:5000

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #IPv4, TCP
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)#для повторного использования того же порта
server_socket.bind(('localhiost', 5000)) какому домену и порту привязываем
server_socket.listen()

def accept_connection(server_socket):
while True:
client_socket, addr = server_socker.accept() #читает подключения, возвращает кортеж(сокет и адрес)
print('Connect from', addr)

def send_message(client_socket):
while True:
request = client_socket.recv(4096) #сообщение от клиента, размер буфера

if not request: #условие для прерывания этого цикла
break
else:
response = 'Hello world\n'.encode() #кодируем строку в bites
client_socket.send(response)
client_socke.close()

if name == 'main':
accept_connection(server_socket)

```[PYTHON:TODAY]

Мир Кодов