/********************************************************************** * Python UDP broadcast PermissionError: [Errno 13] Permission denied * 说明: * 使用Python3做UDP广播,遇到这个权限问题,当时就一阵惊讶,第一看 * 到这种无权限的问题。 * * 2016-12-10 深圳 南山平山村 曾剑锋 *********************************************************************/ 一、参考文档: Python socket.error: [Errno 13] Permission denied http://stackoverflow.com/questions/11457676/python-socket-error-errno-13-permission-denied 二、错误: 1. 错误现象: [zengjf@root ~]# python main.py fdsaf Traceback (most recent call last): File "main.py", line 11, in <module> s.sendto('zengjf'.encode('utf-8'), address) PermissionError: [Errno 13] Permission denied [zengjf@root ~]# 2. 错误原因: Set the SO_BROADCAST option, if you actually mean to send to a broadcast address: s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) 3. 测试代码: import socket address = ('255.255.255.255', 50000) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) while True: msg = input() if not msg: break s.sendto('zengjf'.encode('utf-8'), address) s.close()