• 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#
  • 相关阅读:
    SQLZOO——1 SELECT names
    YOLO目标检测——棉花病虫害数据集+已标注txt格式标签下载分享
    【JS笔记】JSON对象和面向对象编程
    技术管理进阶——一线Leader怎么做?经理的速成宝典
    SAP ERP乙方咨询公司研发自有产品,难能可贵!
    第6周 .NET
    【leetcode】最小差值 I c++
    ConstraintTools...
    4 第一个程序
    系统性能测试
  • 原文地址:https://blog.csdn.net/teamlet/article/details/134427596