如何在python中设置套接字选项IP_DONTFRAG?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中设置套接字选项IP_DONTFRAG?相关的知识,希望对你有一定的参考价值。

如何使用python套接字在IP头中设置DO NOT FRAGMENT标志?

以下代码

socket.setsockopt(socket.IPPROTO_IP, socket.IP_DONTFRAG, 1)

给我这个错误:

AttributeError: 'module' object has no attribute 'IP_DONTFRAG'

有人有想法吗?

答案
def create_sender_session(self):
    logging.debug("Create Sender Session")
    if (self.send_ip_ver == 6 or self.resp_ip_ver == 6):
        self.sender_socket = socket.socket(
            socket.AF_INET6, socket.SOCK_DGRAM)
        self.sender_socket.setsockopt(
            socket.IPPROTO_IPV6, socket.IPV6_TCLASS, self.tos)
        self.sender_socket.setsockopt(
            socket.IPPROTO_IPV6, socket.IPV6_UNICAST_HOPS, self.ttl)
    else:
        self.sender_socket = socket.socket(
            socket.AF_INET, socket.SOCK_DGRAM)
        self.sender_socket.setsockopt(
            socket.SOL_IP, socket.IP_TTL, self.ttl)
        self.sender_socket.setsockopt(
            socket.IPPROTO_IP, socket.IP_TOS, self.tos)
    self.sender_socket.setsockopt(
        socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    self.sender_socket.bind((self.send_addr, self.send_port))
    logging.info('Sender started: {}:{}'.format(
        self.send_addr, self.send_port))

以上是关于如何在python中设置套接字选项IP_DONTFRAG?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Java代码中设置TCP_CORK选项

通过 SO_RCVTIMEO 套接字选项在 Ruby 中设置套接字超时

如何检查是不是从脚本中设置了 python 调试选项

如何在 Python 中设置一个通用选项以在任何地方只显示 N 位数字?

在 python thrift 客户端中设置套接字的连接和读取超时

如何在 azure 中设置安全的 Web 套接字