码迷,mamicode.com
首页 > 编程语言 > 详细

Python UDP broadcast PermissionError: [Errno 13] Permission denied

时间:2016-12-10 13:31:07      阅读:479      评论:0      收藏:0      [点我收藏+]

标签:mod   question   erro   ddr   address   send   import   input   actual   

/**********************************************************************
 * 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()

 

Python UDP broadcast PermissionError: [Errno 13] Permission denied

标签:mod   question   erro   ddr   address   send   import   input   actual   

原文地址:http://www.cnblogs.com/zengjfgit/p/6155238.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!