UDP Broadcast не работает, в чем проблема? - PullRequest
0 голосов
/ 17 марта 2019

Я запускаю код, который должен посылать «Привет» в эфир, дело в том, что он не работает, и я не знаю почему.Вот код:

import socket  

def main():
    searcher_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    searcher_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    searcher_socket.sendto("Hey", ("255.255.255.255", 9010))
    response, address = searcher_socket.recvfrom(1024)
    print response

main()

Я прослушал в Wireshark, чтобы проверить, выходит ли что-то из компьютера, но кажется, что ничего не выходит .. enter image description here

Кто-то может помочь, пожалуйста?Заранее спасибо

Редактировать: Я проверил код на другом компьютере, который подключен к сети кабелем, а не по Wi-Fi, и это сработало.Эти два компьютера находятся в одной сети.В чем может быть причина того, что код работает на одном компьютере и не работает на другом?

Второе редактирование - Решение : Я нашел решение.Поскольку компьютер подключен через Wi-Fi, для трансляции необходимо сначала связать сокет с вашим IP-адресом.

import socket  

def main():
    searcher_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    searcher_socket.bind(("192.168.1.11", 40400)) # 192.168.1.11 is my computer ip address
    searcher_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    searcher_socket.sendto("Hey", ("255.255.255.255", 9010))
    response, address = searcher_socket.recvfrom(1024)
    print response

main()

1 Ответ

2 голосов
/ 17 марта 2019

В опубликованном вами коде функция main не вызывается.Добавить main() вызов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...