Python UDP broadcast PermissionError: [Errno 13] Permission denied

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

 

转载于:https://www.cnblogs.com/zengjfgit/p/6155238.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值