• python socket编程3 - socket的选项


    在使用 socket 前,需要先创建一个 socket 对象

    my_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
    • 1

    其中的参数,在 python socket编程1 中已经详细列举并说明。
    有了 my_socket 之后,可以对 socket 进行细致化的设置,使用 setsockopt(...)方法。

    my_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)
    my_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
    
    • 1
    • 2

    本篇主要列举说明 socket option的内容。

    一、setsockopt 的定义

    def setsockopt(self, __level: int, __optname: int, __value: int | bytes)
    
    • 1

    二、setsockopt 的三个参数

    level : 参数设置的生效级别
    optName : 选项的名称
    value : 选项设置的值

    1、 leve ( 生效级别) 的取值范围

    SOL_IP = 0
    SOL_SOCKET = 65535
    SOL_TCP = 6
    SOL_UDP = 17
    
    • 1
    • 2
    • 3
    • 4

    2、optName 设置选项的名称

    SOMAXCONN = 2147483647
    SO_ACCEPTCONN = 2
    SO_BROADCAST = 32  # 设置或获取广播标识. 当选择此选项时, 数据报套接字接收向广播地址发送的数据包, 并且可以向广播地址发送数据包. 这一选项对于面向流的套接字无效.
    SO_DEBUG = 1
    SO_DONTROUTE = 16   # 不通过网关发送, 只能发送给直接连接的主机.
    SO_ERROR = 4103
    SO_EXCLUSIVEADDRUSE = -5
    SO_KEEPALIVE = 8   # 允许在面向连接的套接字上发送 keep-alive 消息的功能
    SO_LINGER = 128
    SO_OOBINLINE = 256   # 如果打开这个选项,带外(Out-of-Band)数据可以直接放入接收数据流
    SO_RCVBUF = 4098    # 设置或得到套接字接收缓冲区的最大字节数。
    SO_RCVLOWAT = 4100
    SO_RCVTIMEO = 4102
    SO_REUSEADDR = 4  # 表示在一个 bind() 调用中对提供给它的地址使用的确认规则应该允许重复使用本地地址.
    SO_SNDBUF = 4097   # 设置或得到套接字发送缓冲区的最大字节数.
    SO_SNDLOWAT = 4099
    SO_SNDTIMEO = 4101
    SO_TYPE = 4104
    SO_USELOOPBACK = 64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    ###3、value 值

    True
    或者
    False
    
    • 1
    • 2
    • 3

    参考网址:

    • https://manpages.debian.org/bookworm/manpages/socket.7.en.html
    • https://docs.python.org/3/library/socket.html#
  • 相关阅读:
    缓冲区溢出漏洞的原理及其利用实战
    算法:只使用一个int类型变量表示日期
    计算机视觉——两视图几何求解投影矩阵
    阿里云负载均衡理论
    前端开发规范
    ZooKeeper 避坑实践:如何调优 jute.maxbuffer
    ABAP 报表中如何给报表的输入参数增添 F4 Value Help 试读版
    Android 七大布局属性总结
    网课查题公众号如何搭建查题系统
    【Java】SpringData JPA快速上手,关联查询,JPQL语句书写
  • 原文地址:https://blog.csdn.net/teamlet/article/details/134427596