2015-11-03 3 views
3

Я пытаюсь написать простой мессенджер, который отправляет широковещательную рассылку на весь компьютер в локальной сети. нет Код работает на Windows 7, Ubuntu 14,10, но когда я пытаюсь использовать его на окнах 10, она даже не посылает UDP пакет не вещать, его делать ничего (проверено с помощью Wireshark, не исходящие пакеты)BroadCast message over ip python windows 10

import socket 
import sys 
import traceback 

dest=('<broadcast>',10100) 
UDPSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 

UDPSock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) 
while True: 
    data = raw_input("Enter message to send or type 'exit': ") 
    UDPSock.sendto(data, dest) 
    if data == "exit": 
     break 
UDPSock.close() 
+0

Рассмотрите принятые ответы, которые являются полезными. Чтобы принять ответ, нажмите на полый флажок рядом с ответом, который лучше всего подходит, и это увеличит вашу репутацию и предоставит больше возможностей. См. [Репутация faq] (http://stackoverflow.com/faq#reputation) См. [ эту страницу] (http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work) для более подробной информации. – zaph

ответ

1

Я узнал ту же проблему после обновления до Win10. My WOL.py (Wakeup On Lan) больше не работает. Проверено с помощью tcpdump.

Я нашел обходное решение.

# Broadcast it to the LAN. 
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) 
sock.sendto(send_data, ('172.16.1.255', 9) 

Изменение адреса от '<broadcast>' к сетевому адресу с множеством широковещательных долота работает на моей системе.

E.g. У меня есть сеть класса C с IP 172.16.1.x netmask 255.255.255.0. Изменение '<broadcast>' до '172.16.1.255' делает трюк. Обычно это выполняется ОС.

PS .: Извините за неправильную публикацию, в прошлый раз.

+1

Это не ответ. Вы должны оставить комментарии. Если вы не можете комментировать, подождите, пока вы не сможете –

+0

Это не пытается ответить на вопрос. –

+0

Благодарим вас за работу. Я нахожусь в сети класса C с 192.168.1.X. Я использовал 192.168.1.255 и мог видеть, что широковещательные пакеты работают отлично. –