2013-06-04 48 views
3

我收到此錯誤試圖在Windows 7Python 3.x都有socket.error:[錯誤10013]試圖通過其訪問權限

import socket 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
s.sendto("hello".encode("ascii"), ("<broadcast>", 5868)) 
廣播UDP數據包不允許的方式來訪問一個插座

如果我更改爲255.255.255.255,相同的交易。如果我把一個特定的IP地址(包括127.0.0.1),它工作正常。同樣精確的方法(即發送一個數據包到255.255.255.255)從.NET開始工作。

這不受Windows防火牆影響(嘗試將其關閉)。我是管理員,UAC已關閉,即使「以管理員身份運行」也不起作用。不知何故,我不認爲這是一個實際的權限問題。

回答

4

你似乎缺少一個

s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) 
插座創建後

。它使套接字能夠廣播。

它有幫助嗎?

+0

就是這樣。 Windows支持的套接字選項列表是[here](http://msdn.microsoft.com/en-us/library/windows/desktop/ms740532(v = vs.85).aspx)。 – pelesl

相關問題