Рубрики
Без рубрики

Как отправить сообщения UDP в Python?

Формирование проблем: как отправлять и получать сообщения UDP в Python? Фон: Сетевой слой протокола DataGram Protocol (UDP) позволяет отправлять сообщения без предоставления гарантий доставки. UDP ненадежный — Массаж может быть потерян или доставлен из строя. Но это делает UDP также быстрый, легкий и протокол выбора для многих потоковых сценариев … Как отправить сообщения UDP в Python? Подробнее “

Автор оригинала: Chris.

Проблема разработки: Как отправить и получать сообщения UDP в Python?

Фон : Сетевой слой DataGram протокола DataGram (UDP) позволяет отправлять сообщения без предоставления гарантий доставки. UDP ненадежный массаж может быть потерян или доставлен из строя. Но это делает UDP также быстрый, легкий и протокол выбора для многих потоковых сценариев, таких как Netflix, отправляя сообщения UDP всем наблюдателям конкретного шоу.

Мы различаемся между отправкой и получения сообщений UDP в Python. Для того, чтобы код, представленный в этом руководстве, вам не нужно пользовательские установки какую-либо библиотеку, поскольку нам нужны только розетка Библиотека уже в стандартной библиотеке Python. 😎

Отправка UDP-сообщения

Чтобы отправить сообщение UDP в программу, прослушивающую данный IP-адрес и порт, перезаписать IP-адрес, порт и сообщение и запустите следующий код:

# SENDER

import socket

ip = "127.0.0.1"
port = 5000
msg = b"hello world"

print(f'Sending {msg} to {ip}:{port}')

sock = socket.socket(socket.AF_INET,
                     socket.SOCK_DGRAM)
sock.sendto(msg, (ip, port))

Теперь вы можете спросить: если отправить сообщение, никто не слушает, даже существует ли он? 😉

Получение УДП сообщения

Вот как вы можете создать приемник, слушающий IP-адрес и порт, и печатать все полученные сообщения на экран:

# RECEIVER

import socket

ip = "127.0.0.1"
port = 5000

sock = socket.socket(socket.AF_INET,
                     socket.SOCK_DGRAM)
sock.bind((ip, port))

print(f'Start listening to {ip}:{port}')

while True:
    data, addr = sock.recvfrom(1024) # buffer
    print(f"received message: {data}")

Вы можете настроить обработку сообщений по желанию.

Инженеры распределенных систем должны быть мастерами по меньшей мере одного языка программирования. Я знаю из личного опыта в качестве распределенной системы докторской исследователь. Если вы хотите увеличить свои навыки Python, подумайте о том, чтобы присоединиться к моей бесплатной академии электронной почты, которая учит вам все, что вам нужно стать опытным Python Pro! Это бесплатно!

Источники

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/send-receive-udp-in-python/”